๐ ์ฝ๋ฉํ ์คํธ/๐ ์๋ฃ๊ตฌ์กฐ3 [๐ ์๋ฃ๊ตฌ์กฐ3] Circular Queue ์ํ ํ (๋ฐฐ์ด) 1. ์ํ ๋ฐฐ์ด ํ Code #include #include #define N 5 typedef int element; element queue[N]; //์ฒ์ ๊ณต๋ฐฑ์ผ๋ 0๋ฒ์ง int front=0; int rear=0; //์ฝ์ void qinsert(element value){ //ํฌํ ์ํ ํ์ธ //front :0 , rear: 8 => ํ์ insert๋ง ํด์ ๊ฝ ์ฐธ. 0->1->----8->0->1, ์ฌ๊ธฐ์ front์ธ 0๋ฒ์ง๋ ๋น์ด์๋ ์ํ if (front==(rear+1)%N){//front (ํ์นธ)๋น์๋์ printf("queue overflow"); exit(1); } //++rear%N //=> rear = (rear + 1) % N // (8+1) % 9 = 0 //๋ง์ฝ +1์ ์ํ.. 2023. 7. 21. [๐ ์๋ฃ๊ตฌ์กฐ2] Queue ํ (๋ฐฐ์ด, linked) 1. ๋ฐฐ์ด ํ Code #include #include #define N 5 typedef int element; element queue[N]; int front=-1; //์ฌ๊ธฐ์๋ถํฐ ๋น ์ง๋ฉด ๋จ int rear=-1; //๋ฐ์์ฐจ๋ก void qinsert(element value){ if (rear>=N-1){ //4 printf("queue overflow"); exit(1); } rear++; queue[rear] = value; } element qdelete(){ if (front==rear){ //์ฌ๊ธฐ๊น์ง ๋ฃ์(front) == ์ฌ๊ธฐ๊น์ง ๋บ(rear) ์ฆ, ๋ฃ์๊ฑฐ ๋ค ๋บ = ๊ณต๋ฐฑ printf("ํ์ ๊ฐ์ด ์์ต๋๋ค"); } front++; return queue[front]; } int main(.. 2023. 7. 20. [๐ ์๋ฃ๊ตฌ์กฐ1] STACK ์คํ (๋ฐฐ์ด, ์ฐ๊ฒฐ) 1. ๋ฐฐ์ด STACK Code #include #include #define N 10 typedef int element; //๋์ค์ int๋ง char ๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ๋จ element stack[N];// ๋ฐฐ์ด์ ํฌ๊ธฐ๋ ๋์ค์ ๋ฐ๊ฟ ์๋ ์์ผ๋๊น int top = -1; // ๋ ธ๋ ์ฝ์ void push(int value){ if(top>=N -1){ printf("stack overflow"); exit(1); } top++; stack[top] = value; } //๊ฐ์ ์ฝ์ ํ๋ ํจ์ // ๋ ธ๋ ์ญ์ element pop(){ if (topdata = value; news -> link = top; top = news; } //0: ๊บผ์ง ๊ฑฐ์ง ์๋ฌด๊ฒ๋ ์์ NULL(0) = ๊บผ์ง, ๊ฑฐ์ง //1: ์ผ์ง.. 2023. 7. 19. ์ด์ 1 ๋ค์