자료구조

선형 리스트 - 기본

explorer999 2023. 9. 8. 21:21
def add_data(friend):

    katok.append(None)
    klen=len(katok)
    katok[klen-1] = friend

def insert_data(position, friend) :
   
    if position<0 or position>len(katok):
        print("데이터를 삽입할 범위를 벗어났습니다.")
        return
   
    katok.append(None)
    klen=len(katok)
   
    for i in range(klen-1, position, -1):
        katok[i]=katok[i-1]
        katok[i-1]=None
       
    katok[position]=friend
   
def delete_data(position):
   
    if position<0 or position>len(katok):
        print("데이터를 삭제할 범위를 벗어났습니다.")
       
    klen= len(katok)
    katok[position]=None
   
    for i in range(position+1,klen):
        katok[i-1]=katok[i]
        katok[i]=None
   
    del(katok[klen-1])
   
   
katok=[]
select =-1


if __name__ =="__main__":
   
    while (select !=4):
       
        select = int(input("선택하세요(1: 추가, 2: 삽입, 3: 삭제, 4: 종료)-->"))
       
        if (select ==1):
            data = input("추가할 데이터--> ")
            add_data(data)
            print(katok)
        elif (select== 2):
            pos = int(input("삽입할 위치-->"))
            data =input("추가할 데이터-->")
            insert_data(pos, data)
            print(katok)
        elif (select ==3):
            pos=int(input("삭제할 위치->"))
            delete_data(pos)
            print(katok)
        elif (select ==4):
            print(katok)
            exit
        else:
            print("1~4 중 하나를 입력하세요.")
            continue

#처음에는 빈 선형리스트에서 데이터 입력, 중간 삽입, 삭제를 사용자가 원하는 만큼 반복할 수 있다. 

 

 

 

 

출처: 우재남, 『파이썬 자료구조와 알고리즘 for beginner』, 한빛아카데미(2021), 104-106.