컴퓨터공학/자료구조 (2) 썸네일형 리스트형 스택 (Stack) 배열을 활용한 스택 #include #include #define MAX 1000 #define INF 99999 int stack[MAX]; int top = -1; void Push(int data) { if (top == MAX - 1) { printf("스택 오버 플로우 발생\n"); return; } stack[++top] = data; } int Pop() { if (top == -1) { printf("스택 언더 플로우 발생\n"); return -INF; } return stack[top--]; } void Show() { for (int i=top; i > -1; i--) { printf("%d ", stack[i]); } } 링크리스트를 활용한 스택 * 배열의 비해 장점은 공간활용도가 .. 양방향 연결리스트 (Doubly linked list) 양방향 연결리스트 삽입 - 가장 초기 상태의 삽입은 head와 tail 만 있으며 새로운 노드가 삽입이 된다(head,tail은 data 값이 존재하지 않는다) 삭제 #include #include struct Node { int data; Node* prev; Node* next; }; Node *head, *tail; void Insert(int data) { Node *node = (Node*)malloc(sizeof(Node)); node->data = data; Node *cur = head->next; while (cur->data next; } // cur->prev->next 이러면 지저분 해지니 prev 변수 생성 Node .. 이전 1 다음