[๐Ÿ’œ ์ž๋ฃŒ๊ตฌ์กฐ2] Queue ํ (๋ฐฐ์—ด, linked)

2023. 7. 20. 12:14ยท๐Ÿ’œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/๐Ÿ’œ ์ž๋ฃŒ๊ตฌ์กฐ
728x90

1. ๋ฐฐ์—ด ํ Code

#include<stdio.h>
#include<stdlib.h>
#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(void){
	qinsert(2); //front: -1, rear: 0
	qinsert(5); //front: -1, rear: 1
	qinsert(1); //front: -1, rear: 2
	printf("%d\n",qdelete()); //front: 0, rear: 2
	qinsert(3); //front: 0, rear: 3
	printf("%d\n",qdelete()); //front: 1, rear: 3
	qinsert(4); //front: 1, rear: 4
	qinsert(7); //front: 1, rear: 5
}

 

2. ์—ฐ๊ฒฐ ํ Code

#include<stdio.h>
#include<stdlib.h>


typedef int element;
struct queue {
	element data;
	struct queue* link;
};

//๊ตฌ์กฐ์ฒด queue๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ํฌ์ธํ„ฐ
struct queue* front= NULL; // = typedef struct queue_pointer* qpointer;
struct queue* rear= NULL;


void qinsert(element value){

	//queue ์‚ฌ์ด์ฆˆ๋งŒํผ ๋™์  ํ• ๋‹น-> ๊ตฌ์กฐ์ฒด queue๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ํฌ์ธํ„ฐ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜
	struct queue* newq = (struct queue*)malloc(sizeof(struct queue)); //(qpointer)malloc(sizeof(struct queue))
	newq -> data = value;
	newq ->link = NULL;
	if (rear==NULL) //๋“ค์–ด์˜ฌ์• ๊ฐ€ NULL = queue๊ฐ€ ๋น„์–ด์žˆ์„ ๋•Œ
		front = newq; //๋บ„ ๋•Œ ์–˜๋ถ€ํ„ฐ ๋นผ๋ฉด ๋จ
	
	else
		//rear์˜ link๊ฐ€ ์ƒˆ๋กœ์šด newq์˜ ์ฃผ์†Œ๊ฐ’ ๊ฐ€๋ฅดํ‚ด
		rear ->link = newq; 
	
	//์—ฐ๊ฒฐ
	rear = newq;
} 

element qdelete(){
	if(front == NULL){
		printf("ํ์— ๊ฐ’์ด ์—†์Šต๋‹ˆ๋‹ค");
		exit(1); 
	}
	element tmp = front->data;
	struct queue* del = front;
	front = front->link;
	if(front==NULL) rear = NULL; 
	free(del);
	return tmp;
	}
	
int main(void){

	//์ฒ˜์Œ ๊ณต๋ฐฑ์ธ ์ƒํƒœ : front = null, rear = null (null)

	qinsert(2); //front: 0๋ฒˆ์ง€, rear: 0๋ฒˆ์ง€ (2)
	qinsert(9); //front: 0๋ฒˆ์ง€, rear: 1๋ฒˆ์ง€ (2->9)
	printf("%d\n",qdelete()); // front: 1๋ฒˆ์ง€, rear: 1๋ฒˆ์ง€ (0๋ฒˆ์ง€ free) (9)
	printf("%d\n",qdelete()); // front: null, rear: null   (1๋ฒˆ์ง€ free) (null)
	qinsert(3); //front: 0'๋ฒˆ์ง€, rear: 0'๋ฒˆ์ง€ (3)
	qinsert(6); //front: 0'๋ฒˆ์ง€, rear: 1'๋ฒˆ์ง€ (3->6)
	printf("%d\n",qdelete());//front: 1'๋ฒˆ์ง€, rear: 1'๋ฒˆ์ง€ (6)
}

 

 

 

 

 

 

#์ฝ”๋”ฉํ…Œ์ŠคํŠธ #์ฝ”๋”ฉ๊ณต๋ถ€

728x90
'๐Ÿ’œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/๐Ÿ’œ ์ž๋ฃŒ๊ตฌ์กฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๐Ÿ’œ ์ž๋ฃŒ๊ตฌ์กฐ3] Circular Queue ์›ํ˜• ํ (๋ฐฐ์—ด)
  • [๐Ÿ’œ ์ž๋ฃŒ๊ตฌ์กฐ1] STACK ์Šคํƒ (๋ฐฐ์—ด, ์—ฐ๊ฒฐ)
eyes from es
eyes from es
  • eyes from es
    eyes from es
    eyes from es
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
      • โค๏ธ ๊ฟ€ํŒ ๋ชจ์Œ
        • โค๏ธ ๊ฐ“์ƒ ๊ฟ€ํŒ
        • โค๏ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      • ๐Ÿงก Projects
        • ๐Ÿงก Projects: Web
        • ๐ŸŽคPreterview
        • ๐Ÿงก Projects: App
        • ๐Ÿงก๋Œ€์™ธํ™œ๋™
        • ๐Ÿงก OSCCA ์˜คํ”ˆ์†Œ์Šค ์ปจํŠธ๋ฆฌ๋ทฐ์…˜ ์•„์นด๋ฐ๋ฏธ
      • ๐Ÿ’› Frontend
        • ๐Ÿ’› Frontend : React
        • ๐Ÿ’› Frontend : JavaScript
        • ๐Ÿ’› Frontend : TypeScript
      • ๐Ÿ’š Backend
      • ๐Ÿ’™ OS: ์šด์˜์ฒด์ œ
        • ๐Ÿ’™ Linux
      • ๐Ÿ’œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
        • ๐Ÿ’œ ์ž๋ฃŒ๊ตฌ์กฐ
        • ๐Ÿ’œ ์•Œ๊ณ ๋ฆฌ์ฆ˜
        • ๐Ÿ’œ ๋ฐฑ์ค€
        • ๐Ÿ’œSWEA
        • ๐Ÿ’œํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
      • ๐Ÿ”ด Study
        • ๐Ÿ”ด๋ฉด์ ‘ ์Šคํ„ฐ๋””
        • ๐Ÿ”ด ๊ธฐ์—…๋ถ„์„
        • ๐Ÿ”ด ์—๋Ÿฌ๋…ธํŠธ(Error Note)๐Ÿงฑ
        • ๐Ÿ”ด ITNews(Coding)
        • ๐Ÿ”ด ITNews(Tech)
      • ๐ŸŸ  ์ธ์ƒ ๊ณ„ํš
        • ๐ŸŸ  ์˜ฌํ•ด ๋ชฉํ‘œ
      • ๐ŸŸก TIL
        • ๐ŸŸก TIL ์ผ๊ธฐ
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๊ธฐ์—…๋ถ„์„
    ์ตœ๊ทผ์ด์Šˆ
    ๋™ํ–ฅ๋ถ„์„
    css
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ๋ถ„์„๋ ˆํฌํŠธ
    ์ฝ”ํ…Œ
    ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ
    html
    ๊ฐœ๋ฐœ๊ณต๋ถ€
    SW์ด์Šˆ
    ์›น๊ฐœ๋ฐœ
    ์ž๋ฃŒ๊ตฌ์กฐ
    ์‚ผ์„ฑ์ „์ž
    ๋ฐฉํ•™์Šคํ„ฐ๋””
    ๊ฐœ๋ฐœ
    ๋‰ด์Šค์Šคํฌ๋žฉ
    IT์ด์Šˆ
    ๋ฐฑ์ค€
    ๋„ค์นด๋ผ์ฟ ๋ฐฐ
    Ai
    ๋ฌธ์ œํ’€์ด
    C
    ์ฝ”๋“œ๋ฆฌ๋ทฐ
    ์Šค๋งˆํŠธ์‹ฑ์Šค
    ์ฝ”๋“œ์Šคํ„ฐ๋””
    ์ฝ”๋”ฉ
    ์Šคํ„ฐ๋””
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ๋‰ด์Šค๋ฃธ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.5
eyes from es
[๐Ÿ’œ ์ž๋ฃŒ๊ตฌ์กฐ2] Queue ํ (๋ฐฐ์—ด, linked)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”