본문 바로가기
반응형

자료구조16

#15 트리(Tree) ADT* BTreeNode* MakeBTreeNode(void);- 이진 트리 노드를 생성하여 그 주소 값을 반환한다.* BTData GetData(BTreeNode* bt);- 노드에 저장된 데이터를 반환한다.* void SetData(BTreeNode* bt, BTData data);- 노드에 데이터를 저장한다. data로 전달된 값을 저장한다.* BTreeNode* GetLeftSubTree(BTreeNode* bt);- 왼쪽 서브 트리의 주소 값을 반환한다.* BTreeNode* GetRightSubTree(BTreeNode* bt);- 오른쪽 서브 트리의 주소 값을 반환한다.* void MakeLeftSubTree(BTreeNode* main, BTreeNode* sub);- 왼쪽 서브 트리를 .. 2024. 5. 16.
#14 덱(Deque)의 이해와 구현 Dequedouble-ended queue를 줄여서 표현한 것.앞으로도 뒤로도 데이터를 넣을 수 있고, 앞으로도 뒤로도 데이터를 뺄수 있는 자료구조를 말한다. ADT* void DequeInit(Deque * pdeq);- 덱의 초기화를 진행한다.- 덱 생성 후 제일 먼저 호출되어야 하는 함수이다.* int DQIsEmpty(Deque * pdeq);- 덱이 빈 경우 TRUE(1)를, 그렇지 않은 경우 FALSE(0)을 반환한다.* void DQAddFirst(Deque * pdeq, Data data);- 덱의 머리에 데이터를 저장한다. data로 전달된 값을 저장한다.* void DQAddLast(Deque * pdeq, Data data);- 덱의 꼬리에 데이터를 저장한다. data로 전달된 값을 .. 2024. 5. 15.
#13 큐(Queue)를 응용한 예제(햄버거가게) ADT* 점심시간은 1시간이고 그 동안 고객은 15초에 1명씩 주문을 하는 것으로 간주한다.* 한 명의 고객은 하나의 버거만을 주문한다고 가정한다.* 주문하는 메뉴에는 가중치를 두지 않는다. 모든 고객은 무작위로 메뉴를 선택한다.* 햄버거를 만드는 사람은 1명이다. 그리고 동시에 둘 이상의 버거가 만들어지지 않는다.* 주문한 메뉴를 받을 다음 고객은 대기실에서 나와서 대기한다.* 고객이 주문하는 메뉴에 가중치를 두기 않기 위해서 다음 함수르 사용하기로 하겠다.  int rant(void)  //무직위 메뉴의 선택을 위해서 Main.c#include #include #include #include "CircularQueue.h"#define CUS_COME_TERM 15 // 고객의 주문 가격: 초 단위#.. 2024. 5. 15.
#12 큐(Queue) 큐 자료구조의 ADT* void QueueInit(Queue * pq);- 큐의 초기화를 진행한다.- 큐 생성 후 제일 먼저 호출되어야 하는 함수이다.* int QIsEmpty(Queue * pq);- 큐가 빈 경우 TRUE(1)을, 그렇지 않은 경우 FALSE(0)을 반환한다.* void Enqueue(Queue * pq, Data data);- 큐에 데이터를 저장한다. 매개변수 data로 전달된 값을 저장한다.* Data Dequeue(Queue * pq);- 저장순서가 가장 앞선 데이터를 삭제한다.- 삭제된 데이터는 반환한다.- 본 함수의 호출을 위해서는 데이터가 하나 이상 존재함이 보장되어야 한다.* Data QPeek(Queue * pq);- 저장순서가 가장 앞선 데이터를 반환하되 삭제하지 않는.. 2024. 5. 13.
반응형