[๐Ÿ’œ ์ž๋ฃŒ๊ตฌ์กฐ1] STACK ์Šคํƒ (๋ฐฐ์—ด, ์—ฐ๊ฒฐ)

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

1. ๋ฐฐ์—ด STACK Code

#include <stdio.h>
#include <stdlib.h>
#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 (top<=-1){ //top = -1 : stack ๊ณต๋ฐฑ
		printf("stack underflow");
		exit(1);
	}
	
	element tmp;
	tmp = stack[top];
	top--; 
	return tmp;
}

int main(){
	push(5); //stack: 5
 	push(3); //stack: 5 3
	printf("%d\n", pop()); //stack: 5 , 3์ถœ๋ ฅ
	push(7);  //stack: 5 7
	printf("%d\n",pop()); //stack: 5, 7์ถœ๋ ฅ
	printf("%d\n",pop()); //stack:  , 5์ถœ๋ ฅ
	
}

 

2. linkedlist STACK Code

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

typedef int element;
typedef struct stack_node* stack_pointer;

typedef struct stack_node{
	element data;
	stack_pointer link;
	
}snode;

//stack์˜ top ํ˜„์žฌ ๋น„์–ด์žˆ์Œ
stack_pointer top = NULL; //null: false ๊ฑฐ์ง“

//์‚ฝ์ž…
void push (element value){
	stack_pointer news=(stack_pointer)malloc(sizeof(snode));
	news->data = value;
	news -> link = top;
	top = news;

} 

//0: ๊บผ์ง ๊ฑฐ์ง“ ์•„๋ฌด๊ฒƒ๋„ ์—†์Œ NULL(0) = ๊บผ์ง, ๊ฑฐ์ง“
//1: ์ผœ์ง ์ฐธ ๋ฌด์–ธ๊ฐ€ ์žˆ์Œ

element pop(){

	// stack =NULL
	// top = NULL
	// NULL == FALSE == 0
	// !NULL == TRUE == 1
	
	//if: ์ด ์กฐ๊ฑด์ด ์ฐธ์ด๋ผ๋ฉด ์•ˆ์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์ค˜
	//!๊ฑฐ์ง“: ์ฐธ
	if(!top){ //true์ผ๋•Œ
	  printf("์Šคํƒ์— ๊ฐ’์ด ์—†์Šต๋‹ˆ๋‹ค");
	  exit(1);
	  }//NULL์ผ๋•Œ ๊ฑฐ์ง“
	  // 0 NULL : false
	  // 1 ํ˜น์€ ๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ if(2) : true

	  

	stack_pointer del = top;
	element tmp = top->data ; //์‚ญ์ œํ•œ ๋…ธ๋“œ์˜ ๋ฐ์ดํ„ฐ ๊ฐ’
	top = top->link;
	free(del); //๋™์ ํ• ๋‹นํ•œ ๋ฉ”๋ชจ๋ฆฌ free
	return tmp;

}

int main(void){
	push(5); //stack: top -> 5
	push(1); //stack: top -> 1 5 
	printf("%d\n", pop()); //stack: top -> 5, 1์ถœ๋ ฅ
	push(3); //stack: top -> 3 -> 5
	printf("%d\n", pop()); //stack: top -> 5, 3 ์ถœ๋ ฅ
	printf("%d\n", pop()); //stack: top -> NULL, 5์ถœ๋ ฅ
}

 

3. ์—ฐ๊ฒฐ STACK - ์‚ฝ์ž…

 

 

4. ์—ฐ๊ฒฐ STACK - ์‚ญ์ œ

728x90
'๐Ÿ’œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/๐Ÿ’œ ์ž๋ฃŒ๊ตฌ์กฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๐Ÿ’œ ์ž๋ฃŒ๊ตฌ์กฐ3] Circular Queue ์›ํ˜• ํ (๋ฐฐ์—ด)
  • [๐Ÿ’œ ์ž๋ฃŒ๊ตฌ์กฐ2] Queue ํ (๋ฐฐ์—ด, linked)
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 ์ผ๊ธฐ
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

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

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

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

  • ์ตœ๊ทผ ๊ธ€

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

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