목록자료구조 (22)
without haste but without rest
#include #include #include typedef struct ListNode {// 노드 타입 char name;// 승객명 int arrive_time;// 도착시간 int company;// 동승인원 struct ListNode* link; } ListNode; typedef struct ListType {// 리스트 헤더 타입 int size;// 현재 리스트의 노드 개수 int num_aboard;// 현재 리스트의 전체 인원 char name[10];// 리스트(그룹)의 이름 ListNode* head; ListNode* tail; struct ListType* link; } ListType; void error(char* message); ListType* create(char*..
#include "list.h" #define CREATE 1 #define APPEND 2 #define PUSH 3 #define POP 4 #define INSERTAT 5 #define VALUEAT 6 #define DELETEAT 7 #define END 8 ListNode* create(int start, int end, int step); ListNode* get_last_node(ListNode* head); ListNode* get_at(ListNode* head, int at); const char* cmdstr[] = { "create3", "append1", "push1", "pop", "insertat2", "valueat1", "deleteat1", "end" }; void m..
/* title - 교재 뱅킹 시뮬레이션 코드 수정 원형큐를 이용하여 뱅킹 업무처리 시스템 구현 */ #include #include #include #define MAX_QUEUE_SIZE 20 // ================ 원형큐 정의부 시작 ================= typedef struct { // 요소 타입 int id; int arrival_time; int service_time; } element;// 교체! // ================ 원형큐 정의부 종료 ================= // ===== 원형큐 코드 시작 ====== typedef struct { // 큐 타입 element data[MAX_QUEUE_SIZE]; int front, rear; } Que..
#include #include #define MAX_SIZE 5 #define ADD_F 1 #define ADD_R 2 #define REMOVE_F 3 #define REMOVE_R 4 typedef int element; typedef struct { element queue[MAX_SIZE]; int front, rear; } QueueType; void init_queue(QueueType* q){ q->front = q->rear = 0; } void error(char* msg) { fprintf(stderr, "%s\n", msg); exit(1); } int is_empty(QueueType* q) { return q->front == q->rear; } int is_full(Queue..
후위 표기 계산 main (기본 코드) #include "stack.h" #include #include int eval(char* value) { int n = strlen(value); int v1, v2; char ch; stackType s; init_stack(&s); for (int i = 0; i < n; i++) { ch = value[i]; if (ch != '+' && ch != '-' && ch != '/' && ch != '*') { ch = ch - '0'; // atoi push(&s, ch); } else { v2 = pop(&s); v1 = pop(&s); switch (ch) { case '+': push(&s, v1 + v2); break; case '-': push(&s..
미로 문제 main #include #include #include "stack.h" #define WALL '1' #define ROAD '0' #define PATH '#' #define GOAL 'G' #define VISITED '.' #define MAX_SIZE 20 char maze[MAX_SIZE][MAX_SIZE]; int maze_size = 0; void init_maze() { printf("Maze Size >> "); scanf_s("%d", &maze_size); for (int i = 0; i < maze_size; i++) { printf("%d행: ", i); scanf_s("%s", &maze[i], sizeof(char) * maze_size + 1); } } void..
동적 배열 스택 #include #include /* 동적 배열 스택 완성 코드 추가 1. void delete_stack 2. void print_stack 3. 구조체를 포인터로 선언 */ typedef int element; // element is data tpye of stack, it is easy to adjust code typedef struct { element* stack; int top; int capacity; } stackType; void init_stack(stackType* s); int is_full(stackType* s); int is_empty(stackType* s); void push(stackType*, element item); element pop(stack..
구조체를 활용하는 스택 #include #include #define MAX_SIZE 5 /* 구조체를 활용한 배열 스택 단점 1. 배열의 크기를 변경할 수 없다. 2. 메모리 사용측면에서 비효율적이다. 해결 방법 1. 동적 배열 스택 */ typedef int element; // element is data tpye of stack, it is easy to adjust code typedef struct { element data[MAX_SIZE]; int top; } stackType; void init_stack(stackType* s); int is_full(stackType* s); int is_empty(stackType* s); void push(stackType* s, element i..