본문 바로가기

노드3

[자료구조 4장] - 연결리스트(3) 연결리스트(3) 응용 프로그램 동물연결리스트 예제 동물농장에 있는 5가지 동물의 종류(문자배열)와 동물의 수를 연결리스트로 구축하여 출력하는 프로그램을 작성하자. 우선 dog 10 하나의 데이터 항목 1개의 노드가 초기에 주어져 있고 4가지 동물의 종류와 동물의 수를 받아 차례로 연결하는 프로그램이다. typedef struct fnode *fpointer; struct node { char animal[10]; int item; fpointer next; }; void main() { fpointer head=NULL, ptr, another, before; int k, how_many=0; head = (fpointer) malloc(sizeof(struct fnode)); strcpy(head->a.. 2024. 2. 8.
[자료구조 4장] - 연결리스트(2) 연결리스트(2) 단순 연결리스트 구조와 연결방법 저장하려는 연결리스트 구조의 노드들은 첫 노드부터 꼬리에 꼬리를 물고 한 방향으로 연결되어 있으며 마지막 노드의 포인터는 NULL 값을 가진다. ex) 문자열의 집합 {"bake", "cake", "sake", "take"}을 알파벳 순서로 연결리스트에 저장하는 경우 헤드 노드 : 첫 번째 노드의 포인터 헤드 노드의 포인터를 잃으면 리스트 안의 전체 데이터에 접근할 수 없게 된다. 화살표는 다음 자료의 기억 장소 번지이며, 마지막 노드의 다음 데이터는 없으므로 NULL값을 가지게 된다. 이렇게 단순 연결리스트는 헤드 노드로부터 NULL 값을 가지는 노드까지 한 방향으로 연결되어 있다. 연결리스트를 사용하여 프로그램을 작성할 때, 리스트의 끝을 검사하는 경우.. 2024. 1. 30.
[자료구조 4장] - 연결리스트(1) 연결리스트(1) 포인터와 연결리스트 순차리스트와 연결리스트 배열로 구현된 순차리스트 구조는 연속적인 순서를 유지해야 하기 때문에 다음과 같은 단점이 있다. 1. 리스트 중간에 자료를 삽입, 삭제하기 어렵다. 2. 리스트의 크기나 모양을 바꾸고자 하는 경우 문제가 발생한다. 3. 프로그램 수행 도중 리스트의 크기가 가변적이라면 최대 크기를 산정하여 처음부터 미리 이를 준비해 두어야 하므로 기억장소를 낭비하게 된다. 이와 같은 단점을 보완하기 위한 방법으로 자료와 그다음 자료의 위치를 하나의 단위로 저장하여 연결고리 형태로 리스트를 구성하는 연결리스트 구조가 제안되었다. 배열과 같은 리스트의 구조는 데이터 크기가 컴파일 시간에 정해진다. 연결리스트는 삽입과 삭제가 자주 일어나고 크기가 가변적인 경우 편리한 .. 2024. 1. 20.