티스토리 뷰

#include<stdio.h> #include<stdlib.h>    //malloc 함수가 들어있는 헤더파일

typedef struct node{ int data; struct node* link; //다음 데이터를 담을 링크 포인터 변수 }Node; Node* CreateNode(int num){ Node *p; p=(Node*)malloc(sizeof(Node)); //새로운 노드를 메모리 할당함. p->data=num;     //새로운 노드의 데이터를 파라미터에 주어진 값으로 함. p->link=NULL;     //새로운 노드의 링크를 NULL로 할당 return p;     //새로운 노드의 주소 리턴 } int main(void) { Node *p, *head;     //연결 리스트의 첫번째 노드인 head 변수와 접근을 위한 p 포인터 변수 head=p=CreateNode(10); //새로운 노드를 만든다. 첫 노드의 값은 10 p->link=CreateNode(20); //두번째 노드를 만든다. 두번째 노드 값 20 p=p->link; //현재 접근 위치를 링크. 현재 2번째 노드 접근중 p->link=CreateNode(30);         //세번째 노드를 만든다. 세번째 노드 값 30 p=p->link; //현재 접근 위치를 링크. 현재 3번째 노드 접근중 p->link=CreateNode(40); //네번째 노드를 만든다. 네번째 노드 값 40 p=p->link; //현재 접근 위치를 링크. 현재 4번째 노드 접근중 p->link=CreateNode(50); //다섯번째 노드를 만든다. 다섯번째 노드 값 50 for(p=head;p!=NULL;p=p->link) //현재 다섯번째 노드의 link는 NULL임. 고로 50까지 출력. printf("%d\t",p->data); //현재 노드의 데이터 접근 }

단순 연결 리스트(링크드 리스트)이다.


단순 연결 리스트는 데이터들이 링크를 통해 연결되어있는 구조를 가진 자료구조이다.

각 노드들은 데이터와 링크를 가지고 있다.


10 > 20 > 30 > 40 > 50 > NULL

이 연결 리스트에서 데이터 10의 링크에는 20의 주소가 담겨있고, 20의 링크에는 30의 주소가 담겨있다.

'Today I learned > 자료구조' 카테고리의 다른 글

트리(Tree)  (0) 2017.10.11
단순 연결 리스트(2, 역순 연산)  (0) 2017.09.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함