#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct stackNode{
int data;
struct stackNode *link;
}stackNode;
void push(stackNode **top, int data){
stackNode* temp;
temp = (stackNode*)malloc(sizeof(stackNode));
temp->> temp->link = *top;
*top = temp;
}
int pop(stackNode **top){
stackNode* temp;
int data;
temp = *top;
if(temp == NULL){
printf("Stack is empty\n");
exit(1);
}
else{
> *top = temp->link;
free(temp);
return data;
}
}
int main(void){
stackNode *top = NULL;
push(&top, 10);
push(&top, 20);
push(&top, 30);
printf("%d\n", pop(&top));
printf("%d\n", pop(&top));
printf("%d\n", pop(&top));
return 0;
}
스택 공부중인데 push에서 temp->link = *top 하고 *top = temp 해주면 *top의 link부는 *top자기자신을 가르키니까 무한루프 되는거 아니예요?? 이해점 ㅠㅠㅠㅠ
댓글 0