728x90 DataStructure4 단일 리스트로 스택 구현하기 -Stack- C 언어 1. LinkedListstack.h 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 1.. 2019. 6. 5. 이중 연결 리스트 -Double Linked List(2) (삭제, 삽입, 생성,추가) - C 언어 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 Node* CreateNode(int NewData) { Node* NewNode = (Node*)malloc(sizeof(Node)); NewNode->Data = NewData; NewNode->Next = NULL; NewNode->Pre = NULL; return NewNode; .. 2019. 6. 3. 단일 연결 리스트 -Linked List(2) (노드탐색, 삭제, 삽입) - C 언어 단일 연결 리스트의 노드 탐색은 한계점이 많다. 탐색 방향이 일편적이고, 순차적으로 노드의 수를 세어나가서 원하는 요소에 접근해야 한다는 점이 있다. 1. 노드 탐색 1 2 3 4 5 6 7 8 9 10 11 12 Node* search_Node(Node* Head, unsigned short SearchValue, unsigned short *search_count) { Node* Current = Head; while (Current->Data != SearchValue) { Current = Current->Next; (*search_count)++; } return Current; } 2. 노드 탐색 실행 결과 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 .. 2019. 4. 10. 단일 연결 리스트 -Linked List(1) (노드생성, 삭제, 추가) - C 언어 단일연결리스트는 크기를 가변적으로 만들 수 있다는 장점이 있다. 예를들어 파일 목록을 가져 오려하는데 어떤 임의의 디렉토리에서 파일이 몇개 있는지 알 수 없을때. 고정적인 배열을 사용하여 가져오기에는 한계가 있다. char* FileList[20]; 이라고 선언해놓고 파일이 20개이상이 되면 불러오지 못한다거나, char* FileList[65535]; 라고 선언해놓고 파일목록이 이 숫자에 미치지 못한다면 메모리가 아까울 뿐이다. 이런 경우 정적인 배열말고 동적인 1차원 리스트를 생성할 수 있는데 단점은 효율이 안좋으므로 다른걸 씁시다. 그래도 알아두면 이중연결리스트를 기반으로 이진트리나,다른 기타 자료구조나 알고리즘과 C언어의 포인터를 이해하는데 조금은 도움이 되기 때문이다. 1 2 3 4 5 type.. 2019. 4. 7. 이전 1 다음 728x90