C/C++ 예제

시삽: 레드플러스 님 
게시판 이동:
 제목 : 13.3.6. 이중 연결 리스트 간단한 설명 : 이중연결리스트간단한설명.c
글번호: 296
작성자: 레드플러스
작성일: 2007/01/24 오후 2:23:54
조회수: 4725
1/* 2 이중 연결 리스트(Doubly Linked List) : 3 선형 리스트는 역방향 조회를 할 수 없는 단점이 있다. 4 이를 개선한 데이터 구조가 이중 연결 리스트이다. 5*/ 6#include <stdio.h> 7#include <malloc.h> 8#include <string.h> 9 10// 이중 연결 링크드 리스트용 구조체 11struct Node 12{ 13 struct Node *PrevNode; //역방향 포인터 14 char Name[20]; //이름 15 char Phone[20]; //전화번호 16 struct Node *NextNode; //정방향 포인터 17}; 18 19struct Node *GetNode(void); 20 21// 메인 함수 22void main(void) 23{ 24 int i = 0; 25 struct Node *head, *tail, *current; 26 27 //역방향 리스트 생성 28 tail = NULL; 29 30 current = GetNode(); 31 strcpy(current->Name, "aa"); 32 strcpy(current->Phone, "11"); 33 34 current->PrevNode = tail; 35 tail = current; 36 37 current = GetNode(); 38 strcpy(current->Name, "bb"); 39 strcpy(current->Phone, "22"); 40 41 current->PrevNode = tail; 42 tail = current; 43 44 current = GetNode(); 45 strcpy(current->Name, "cc"); 46 strcpy(current->Phone, "33"); 47 48 current->PrevNode = tail; 49 tail = current; 50 51 // 정방향 리스트 생성 52 current = tail; 53 head = NULL; 54 55 current->NextNode = head; 56 head = current; 57 current = current->PrevNode; 58 59 current->NextNode = head; 60 head = current; 61 current = current->PrevNode; 62 63 current->NextNode = head; 64 head = current; 65 current = current->PrevNode; 66 67 // 정방향 리스트 출력 68 current = head; 69 70 printf("%s %s\n", current->Name, current->Phone); 71 current = current->NextNode; 72 73 printf("%s %s\n", current->Name, current->Phone); 74 current = current->NextNode; 75 76 printf("%s %s\n", current->Name, current->Phone); 77 current = current->NextNode; 78 79 // 역방향 리스트 출력 80 current = tail; 81 82 printf("%s %s\n", current->Name, current->Phone); 83 current = current->PrevNode; 84 85 printf("%s %s\n", current->Name, current->Phone); 86 current = current->PrevNode; 87 88 printf("%s %s\n", current->Name, current->Phone); 89 current = current->PrevNode; 90} 91 92// 구조체 크기만큼 메모리 할당 93struct Node *GetNode(void) 94{ 95 return (struct Node *)malloc(sizeof(struct Node)); 96}
 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트

(댓글을 남기려면 로그인이 필요합니다.)

관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 14. 기타 - 레드플러스 2005-07-26 4784
  13. 데이터 구조(자료 구조) - 레드플러스 2005-07-26 5270
  13.1. 스택(Stack) - 레드플러스 2005-12-07 3622
  13.1.1. 스택(Stack) - 레드플러스 2005-12-07 3798
  스택 및 큐에 대한 설명한 엑셀 파일(강의용) 스택큐설명.xls(15 KB) 레드플러스 2007-01-23 3827
  13.2. 큐(Queue) - 레드플러스 2005-12-07 3575
  13.2.1. 큐(Queue) - 레드플러스 2005-12-07 4065
  13.2.1.1. 큐(Queue)에 대해 설명할 때 사용한 엑셀 파일 스택큐설명2.xls(15 KB) 레드플러스 2007-01-25 3653
  13.3. 리스트(List) - 레드플러스 2005-12-07 3760
  13.3.1. 리스트(List) : LIFO형 리스트 - 레드플러스 2005-12-07 3730
  13.3.1.1. 리스트(List) : LIFO형 리스트 설명시 사용했던 엑셀 파일 리스트(LIFO)설명.xls(13 KB) 레드플러스 2007-01-26 3639
  13.3.2. 리스트(List) : FIFO형 리스트 - 레드플러스 2005-12-07 4053
  13.3.2.1. 리스트(List) : FIFO형 리스트 설명시 사용했던 엑셀 파일 리스트(FIFO)설명.xls(13 KB) 레드플러스 2007-01-26 3670
  13.3.3. 리스트(List) 입력 - 레드플러스 2005-12-08 3801
  13.3.4. 리스트(List) 삭제 - 레드플러스 2005-12-08 3640
  13.3.5. 이중 연결 리스트(Doubly Linked List) - 레드플러스 2005-12-08 6927
현재글 13.3.6. 이중 연결 리스트 간단한 설명 : 이중연결리스트간단한설명.c - 레드플러스 2007-01-24 4725
  13.3.6. 이중 연결 리스트 간단한 설명시 사용했던 엑셀 파일 이중연결링크드리스트설명.xls(13 KB) 레드플러스 2007-01-24 3886
  13.4. 트리(Tree) - 레드플러스 2006-05-01 3623
  13.4.1. 이진 탐색 트리 - 레드플러스 2006-05-01 3925
  13.4.1.1. 이진 탐색 트리 설명시 사용했던 엑셀 파일 트리설명.xls(17 KB) 레드플러스 2007-01-25 3797
  13.5. 그래프(Graph) - 레드플러스 2006-05-02 3559
  13.5.1 그래프(Graph) - 레드플러스 2006-05-02 3581
  13.5.1.1 그래프(Graph) 설명시 사용했던 엑셀 파일 그래프설명.xls(15 KB) 레드플러스 2007-01-25 3771
  13.6. 해시테이블(Hashtable) - 레드플러스 2006-05-03 3743
  13.6.1 해시테이블(Hashtable) - 레드플러스 2006-05-03 4709
  데이터 구조 종합 예제 : 주소록 프로그램 종합예제_주소록프로그램.c(9 KB) 레드플러스 2006-11-02 4260
다음글 12. 메모리 관리 - 레드플러스 2005-07-26 5080
 
손님 사용자 Anonymous (손님)
로그인 Home