개발일기/기타
linked list stack (in c)
탐요
2021. 5. 18. 14:53
#include <stdio.h>
#include <stdlib.h>
#define FALSE 0
#define TRUE 1
typedef struct NODE{
struct NODE *next;
int num;
}NODE;
NODE *top;
void push(int data);
int pop();
int isempty();
int main(){
push(1);
push(2);
printf("%d\n", pop());
push(3);
push(4);
printf("%d\n", pop());
printf("%d\n", pop());
printf("%d\n", pop());
return 0;
}
void push(int data){
struct NODE *pushnode=malloc(sizeof(struct NODE));
pushnode->num=data;
pushnode->next=top;
top=pushnode;
}
int pop(){
if(isempty())
return ;
NODE *popnode=top;
int a=popnode->num;
top=popnode->next;
free(popnode);
return a;
}
int isempty(){
if(top==NULL)
return TRUE;
else
return FALSE;
}
queue 짜다가 최적화 때문에 미루는 중..