728x90
연결리스트 장점 > 크기 제한X
🟡 연결리스트로 구현한 스택 코드
#include <stdio.h>
#include <stdlib.h>
typedef int element;
typedef struct {
element data;
struct StackNode* link;
}StackNode;
typedef struct {
StackNode* top;
} LinkedStackType;
void init(LinkedStackType* s) {
s->top = NULL;
}
int is_full(LinkedStackType* s) {
return 0;
}
int is_empty(LinkedStackType* s) {
return (s->top == NULL);
}
void push(LinkedStackType* s, element item) {
StackNode* temp = (StackNode*)malloc(sizeof(StackNode));
temp->data = item;
temp->link = s->top;
s->top = temp;
}
element pop(LinkedStackType* s) {
if (is_empty(s)) {
printf("스택이 비었습니다.\n");
return;
}
else{
StackNode* temp = s->top;
element data = temp->data;
s->top = temp->link;
free(temp);
return data;
}
}
element peek(LinkedStackType* s) {
if (is_empty(s)) {
printf("스택이 비었습니다.\n");
return;
}
else {
return s->top->data;
}
}
int main() {
LinkedStackType s;
init(&s);
push(&s, 1);
push(&s, 3);
push(&s, 6);
printf("%d\n", pop(&s));
printf("%d\n", pop(&s));
return 0;
}
'Algorithm' 카테고리의 다른 글
[C언어] 원형 연결리스트 (0) | 2023.01.12 |
---|---|
[C언어] 연결리스트 큐 Linked Queue (0) | 2023.01.12 |
[C언어] - 원형 덱 double-ended queue (0) | 2023.01.12 |
[C언어] - 원형 큐 Circular Queue (0) | 2023.01.11 |
[C언어] - 큐 Queue (0) | 2023.01.11 |