알고리즘19 [자료구조][배열][스택] 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구현 및 설명 목차 문제 다항식을 헤더 단일연결리스트 로 표현하고, 다항식의 덧셈을 구하는 프로그램을 작성하라. 입력에 대한 설명: 첫 번째 다항식의 항의 개수가 입력되고, 이후에 다항식의 각 항의 (계수, 지수) 쌍이 지수 의 내림차순으로 입력됨동일한 방식으로 두 번째 다항식의 정보가 입력됨 입력/출력 3 ↦ 첫 번째 다항식의 항의 개수 5 3 3 2 3 1 ↦ 5x^(3) + 3x^(2) + 3x 3 ↦ 두 번째 다항식의 항의 개수 2 6 2 3 1 0 ↦ 2x^(6) + 2x^(3) + 1 5x^(3) 3x^(2) 3x^(1) 2x^(6) 2x^(3) 1x^(0) 2x^(6) 7x^(3) 3x^(2) 3x^(1) 1x^(0) 노드의 구조 coef: 항의 계수 exp: 항의 차수 next: 다음 노드를 가리키는 링.. 2024. 4. 9. [이중 연결 리스트] 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. 이전 1 2 3 4 5 다음 728x90