프로그래밍/자료구조 (9) 썸네일형 리스트형 연결리스트 이진 탐색 트리 #include #include #define ERROR 255 typedef char element; typedef struct treenode { element key; struct treenode* left; struct treenode* right; }TreeNode; typedef struct { TreeNode* root; }BST; BST* createBST() { BST* bst = (BST*)malloc(sizeof(BST)); bst->root = NULL; return bst; } int isEmpty(BST* bst) { if (bst->root = NULL) return 1; return 0; } element getData(TreeNode * current) { return cu.. 연결리트스 이진트리 #include #include typedef char element; //이진트리 데이터 구조 typedef struct treenode{ element data; struct treenode* left; struct treenode* right; }TreeNode; typedef struct{ TreeNode* root; }BT; //이진트리 연산 구조 BT* createBT(){ BT *bt = (BT*)malloc(sizeof(BT)); bt->root = NULL; return bt; } int isEmpty(BT* bt){ if(bt->root = NULL) return 1; return 0; } TreeNode* makeBT(element data, TreeNode* left, TreeNod.. 연결리스트 #include #include typedef struct node { int data; struct node* link; }Node; typedef struct { Node* header; int numOfData; }LinkedList; LinkedList* createLinkedList() { LinkedList* L = (LinkedList*)malloc(sizeof(LinkedList)); L->header = NULL; L->numOfData = 0; return L; } void insertNode(LinkedList* L,Node* pre, int data) { Node* newNode = (Node*)malloc(sizeof(Node)); newNode->data = data; if (p.. 배열 순차리스트 #include #include #define SIZE 10 typedef struct { int list[SIZE]; int numOfData; }ArrayList; ArrayList* createList() { ArrayList* L = (ArrayList*)malloc(sizeof(ArrayList)); for (int i = 0; i list[i] = 0; } L->numOfData = 0; return L; } int insertData(ArrayList*L,int index, int data) { if (index > L->numOfData) { printf("순차적으로 넣어주세요\n"); return 0; } for (int i = L->numOfData; i.. 연결리스트 큐(Queue) 구현 연결리스트 큐(Queue) #include #include #define ERROR_CODE 65000 typedef int element; typedef struct node{ element data; struct node* link; }Node; typedef struct{ Node* front; Node* rear; }LinkedQueue; LinkedQueue* createQueue(){ LinkedQueue *q=(LinkedQueue*)malloc(sizeof(LinkedQueue)); q->front=NULL; q->rear=NULL; return q; } int isEmpty(LinkedQueue* q){ if(q->front==NULL)return 1; else return 0; } in.. 배열을 이용한 큐(Queue) 배열로 구현한 큐(QUEUE) 선형 큐 #include #include #define QUEUE_SIZE 10 #define ERROR_CODE 65000 typedef int element; typedef struct{ element queue[QUEUE_SIZE]; int front; int rear; }ArrayQueue; ArrayQueue* createQueue(){ ArrayQueue *q = (ArrayQueue*)malloc(sizeof(ArrayQueue)); q->front = -1; q->rear = -1; return q; } int enQueue(ArrayQueue *q, element data){ if(isFull(q)){ printf("Queue is Overflow\n"); .. 스택을 이용해 괄호 검사, 문자열 역순 출력 ArrayStack 괄호검사 #define _CRT_SECURE_NO_WARNINGS #include #include #include #define STACK_SIZE 10 #define ERROR_CODE 255 #define STRING_SIZE 20 //데이터 정의 typedef char element; typedef struct { element stack[STACK_SIZE]; int top; } ArrayStack; //연산 정의 ArrayStack* createStack() { ArrayStack* s; s = (ArrayStack*)malloc(sizeof(ArrayStack)); s->top = -1; return s; } int isEmpty(ArrayStack* s) { if (s->.. 연결리스트로 Stack 구현 #include #include #define STACK_ERROR 60000 typedef int element; typedef struct stacknode{ element data; struct stacknode* link; }StackNode; typedef struct{ int numOfNode; StackNode* top; }LinkedStack; LinkedStack* createStack(){ LinkedStack *s=(LinkedStack*)malloc(sizeof(LinkedStack)); s->numOfNode=0; s->top=NULL; return s; } int isEmpty(LinkedStack *s){ if(s->top==NULL) return 1; else return 0.. 이전 1 2 다음