본문 바로가기
  • Welcome.
:: C_ 🚩/알고리즘

[자료구조] by C언어 #12 [연결리스트]

by EunBird 2021. 4. 9.

ㅡㅡㅡㅡㅡ

    #include <stdio.h>

    #include <stdlib.h>

 

     //연결리스트를 구현할 구조체

     typedef struct NODE{

          int data;

        struct NODE* next;

      }node;

 

   int main(void) {

      node* head = (node*)malloc(sizeof(node));

      // 헤드(시작)노드 생성

      head->next=NULL; // 머리 노드의 next값은 NULL이다. // 노드연결

     

      node* node1 =(node*)malloc(sizeof(node)); // 노드생성.

      node1->next = head->next; //노드연결. // node1의 다음주소는 머리노드가 가리키던 다음주소(NULL)를 저장.

      node1->data =10; // node1의 데이터에는 10을 저장.

      head->next = node1

     

      node* node2 = (node*)malloc(sizeof(node));

      node2->next = node1->next;

      node2->data =20; // node2의 데이터엔 20을 저장.

      node1->next = node2// node1 다음으로는 node2로.

       

 

      node* curr = head->next;

      //순회용 노드 생성

      while(curr != NULL){

      //curr에 저장된 값이 0이 아닐 때 반복. 
      //-> 현재 curr에는 node1의 주소가 저장되있음으로 반복o

         printf("%d\n", curr->data);

         curr = curr->next;

      }

      free(head);

      free(node1);

      free(node2);

      return 0;

      // 머리노드와 node1, node2를 free함수로 해제

   }   

ㅡㅡㅡㅡㅡ

728x90

댓글