링크드리스트 3

[자료구조 - C언어] Linked List(3) - delete

Delete - 노드 삭제하기 delete_node : 인덱스 값과 삭제할 노드의 개수를 입력하여 해당 노드를 삭제함. #include #include typedef struct node { char value; struct node *next_node; }NODE; NODE *create_node(char v){ NODE *mynode; mynode = (NODE*)malloc(sizeof(NODE)); mynode->value = v; mynode->next_node = NULL; return mynode; } void append_node(NODE* h, NODE* n) { struct node *tail; if (h == NULL || n == NULL) return; tail = h; while..

[자료구조 - C언어] Linked List(2) - create, insert

사용된 함수 create_node : 동적 메모리를 할당받아 메인 함수에서 입력받은 값을 구조체 멤버 변수(value)에 대입함. append_node : tail노드에 새로운 노드를 붙이는 역할을 함. prepend_node : head노드 앞에 새로운 노드를 붙이는 역할을 함. print_node : 생성된 노드를 출력함. Create - 노드 생성하기 - 배열을 이용하여 "string"으로 노드 구성하기 - #include #include typedef struct node { char value; struct node* next_node; }NODE; NODE* create_node(char v) { NODE* mynode; mynode = (NODE*)malloc(sizeof(NODE)); //..

[자료구조 - C언어] Linked List

Array대신 Linked List를 사용하는 이유는 무엇일까? 예를 들어, char arr[6] = "linked"; 이런 배열이 있다고 하자. 0~5까지의 배열 칸에 알파벳이 하나씩 들어가 있을 것이다. 여기서 'n'을 삭제하려면 'n' 삭제하고 뒤에 있는 나머지 배열 칸의 값들을 전부 복사하여 한 칸씩 앞에 넣어 줘야 한다. 이렇게 배열 인덱스를 바꿔 주는 것은 번거롭고 복잡하기 때문에 "링크드 리스트(Linked List)"를 사용하여 추가, 삭제 등 각 노드의 수정을 용이하게 한다. 연습하기 1 헤드 노드 하나만 생성하여 값을 넣고 다음 노드에는 NULL로 설정하기 #include typedef struct node { char value; struct node *next_node; }NODE;..