数据结构——栈(C语言实现)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include<malloc.h>
// 栈结构的定义
typedef struct _stack {
    int size;   // 栈存储空间的尺寸
    int* base;   // 栈基址
    int* sp;    // 栈顶
} stack;
 
void init(stack* s, int n) {
    s->base = (int*)malloc(sizeof(int)*n);
    s->size = n;
    s->sp = s->base;
}
 
void push(stack* s, int val) {
    if(s->sp - s->base == s->size) {
        puts("none");
        exit(1);
    }
    *s->sp++ = val;
}
 
int pop(stack* s) {
    if(s->sp == s->base) {
        puts("none");
        exit(2);
    }
    return *--s->sp;
}
int peek(stack*s) {
    if(s->sp == s->base) {
        puts("none");
        exit(2);
    }
 
    return *(s->sp-1);
}
 
int empty(stack* s) {
    return s->sp == s->base;
}
 
void clean(stack* s) {
    if(s->base)
        free(s->base);
}
 
int main(void) {
    stack s;
    int i,n;
    int num;
    char str[30];
    init(&s, 1000);
    while(1) {
 
        scanf("%s",str);
        if(strcmp(str,"push")==0) {
            scanf("%d",&num);
            push(&s, num);
        } else if(strcmp(str,"top")==0) {
            printf("%d\n", peek(&s));
        } else if(strcmp(str,"pop")==0) {
            printf("%d\n", pop(&s));
        } else if(strcmp(str,"clear")==0) {
            empty(&s);
        } else if(strcmp(str,"exit")==0) {
            clean(&s);
 
            break;
        }
    }
    return 0;
}

 

数据结构——栈(C语言实现) - yyf的博客 - CSDN博客 https://blog.csdn.net/qq_18860653/article/details/80388025

 

  

 

posted @   papering  阅读(253)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2018-01-28 使用心理视觉来进行图像处理
2018-01-28 Bridge Page
2017-01-28 trust an HTTPS connection 安全协议 随机数 运输层安全协议 应用层安全协议 安全证书
点击右上角即可分享
微信分享提示