본문 바로가기

프로그래밍/C, C++

연결리스트 스택

728x90
반응형
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
typedef int Element;
typedef struct {
    Element data;
    Node* link;
}Node;

Node* top = NULL;

void error(const char str[]) {
    printf("%s\n", str);
    exit(1);
}

void init_stak() { top = NULL; }
int is_empty() { return top == NULL; }
int size() { 
    Node* p;
    int count = 0;
    for (p = top; p != NULL; p = p->link) {
        count++;
    }
    return count;
}

void push(Element e) {
    Node* p = (Node*)malloc(sizeof(Node));
    p->data = e;
    p->link = top;
    top = p;
}

Element pop() {
    Node* p;
    Element e;
    if (is_empty() == 1) error("스택 공백 에러");
    p = top;
    e = p->data;
    top = p->link;
    free(p);
    return e;
}

Element peek() {
    if (is_empty() == 1) error("스택 공백 에러");
    return top->data;;
}

void destroy_stack() {
    while (is_empty() == 0) pop();
}

int main()
{
    init_stak();
    return 0;
}
728x90
반응형

'프로그래밍 > C, C++' 카테고리의 다른 글

선형덱  (0) 2022.11.28
연결된큐  (0) 2022.11.28
배열 스택  (0) 2022.11.04
[c/c++] Mirth 콘솔 게임 리듬게임 만들기  (0) 2022.10.26
[C++] fill, fill_n 배열을 초기화 하는 방법, 2차원, 3차원 배열 초기화  (0) 2022.04.11