본문 바로가기
반응형

C언어4

#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.
#11 스택으로 계산기 만들기 전위연산으로 계산기 만들기중위연산을 전위연산으로 변경하기main.c#include #include "InfixToPostfit.h"int main(void){ char exp1[] = "1+2*3"; char exp2[] = "(1+2)*3"; char exp3[] = "((1-2)+3)*(5-2)"; ConvToRPNExp(exp1); ConvToRPNExp(exp2); ConvToRPNExp(exp3); printf("%s \n", exp1); printf("%s \n", exp2); printf("%s \n", exp3); return 0;}ListBaseStack.h#ifndef __LB_STACK_H__#define __LB_STACK_H__#define TRUE 1#define FALSE 0t.. 2024. 5. 12.
#10 스택(Stack) 스택의 ADT* void StackInit(Stack* pstack); - 스택의 초기화를 진행한다. - 스택 생성 후 제일 먼저 호출되어야 하는 함수이다. * int SIsEmpty(Stack* pstack); - 스택이 빈 경우 TRUE(1)을, 그렇지 않은 경우 FALSE(0)를 반환한다. * void SPush(Stack* pstack, Data data); - 스택에 데이터를 저장한다. 매개변수 data로 전달된 값을 저장한다. * Data SPop(Stack* pstack); - 마지막에 저장된 요소를 삭제한다. - 삭제된 데이터는 반환이 된다. - 본 함수의 호출을 위해서는 데이터가 하나 이상 존재함이 보장되어야 한다. * Data SPeek(Stack* pstack); - 마지막에 저장된 .. 2024. 5. 8.
반응형