본문 바로가기

자료구조9

[자료구조][스택] 중위 수식 변환 프로그램 c구현 목차 자료구조에서 스택을 활용한 후위 수식과 관련된 문제를 풀고 공부하고자 한다.   기본 스택 구조체(단항 연산자때문에 rank를 따로 만들어주었다.)typedef struct Node { char data; int rank; struct Node* next;}Node;typedef struct Stack { Node* head; Node* cur; int size;}Stack;  스택의 필요한 ADT// 스택 초기화 함수void init(Stack* s) { s->size = 0; s->head = (Node*)malloc(sizeof(Node)); s->head->next = NULL;}// 스택에 데이터를 추가하는 함수void push(Stack* .. 2024. 5. 5.
[자료구조][배열][스택] c 코드 구현 목차 자료구조를 공부하며 스택 구현을 배열로 해 보았다 -스택으로 구현할 ADT들-- push(stack, ‘c’) : stack의 top에 데이터를 추가한다. stack이 이미 꽉 차있으면 해당 데이터 는 스택에 저장하지 않고 “Stack FULL”을 출력한다. - pop (stack) : stack의 top에 있는 데이터를 반환하고 stack에서 제거한다. stack이 비어 있 으면 “Stack Empty”를 출력한다. - peek(stack): stack의 top에 있는 데이터를 화면에 출력한다. stack은 변화하지 않는다.  stack이 비어 있으면 “Stack Empty”를 출력한다. - duplicate(stack): stack의 top에 있는 데이터를 pop해서 두 번  push 한다. s.. 2024. 4. 28.
[자료구조][집합] c구현 재귀/ 반복문 목차 c언어를 공부 하는 겸 집합을 구현해 보고자 했다. 재귀를 이용한 방식과 반복문을 이용한 방식 두가지로 구현해 보았다. 문제 입력 예시 6 ↦ 집합 A 크기 3 7 45 88 99 101 ↦ 집합 A 4 ↦ 집합 B 크기 7 10 15 45 ↦ 집합 B 출력 예시 1 3 7 10 15 45 88 99 101 ↦ 합집합 7 45 ↦ 교집합 struct 구조 typedef struct Node { struct Node* next; int data; }Node; typedef struct List { Node* head; Node* cur; int size; }List; 반복문을 이용한 코드 //합 집합 구현 함수 List* Union(List* a, List* b) { List* list = (List.. 2024. 4. 16.
[이중 연결 리스트] c언어 구현 목차 근본은 c언어지...? 나는 c++이 좋아.. 이중 연결리스트 ADT init(list): list를 초기화해 준다. add(list, r, e) : list의 순위 r에 원소 e를 추가한다. delete(list, r) : list의 순위 r에 위치한 원소를 삭제한다. get(list, r) : list의 순위 r에 위치한 원소를 출력한다. print(list) : list의 모든 원소를 저장 순위대로 공백없이 출력한다. -> r은 1부터 시작한다. 구현 방향 더미노드를 통해 삭제와 삽입을 편리하게 했다. 여기서 더미노드란 리스트 맨 앞이나 뒤에 노드를 추가하는 것으로 아무 값도 없는 노드를 말하는데 삭제나 삽입 구현 시 메모리의 누수관리에 용이하다. struct의 생성 typedef struct.. 2024. 4. 9.
728x90