顺序栈的基本操作

Posted wy0526

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了顺序栈的基本操作相关的知识,希望对你有一定的参考价值。

 1 #include <stdio.h>
 2 #define StackSize 100
 3 typedef int DataType;
 4 typedef struct{
 5     DataType data[StackSize];
 6     int top;
 7 }SeqStack;
 8 
 9 void InitStack(SeqStack * S);
10 void Push(SeqStack *S,DataType x);
11 int Pop(SeqStack * S,DataType * ptr);
12 int GetTop(SeqStack * S,DataType*ptr);
13 int Empty(SeqStack * S);
14 int Print(SeqStack * S);
15 
16 int main(){
17     DataType x;
18     SeqStack S;
19     InitStack(&S);
20     printf("对5和10执行入栈操作:
");
21     Push(&S,15);
22     Print(&S);
23     Push(&S,10);
24     Print(&S);
25     if(GetTop(&S,&x)==1)
26         printf("当前栈顶元素为:%d
",x);
27     if(Pop(&S,&x)==1)
28         printf("执行一次出栈操作,删除元素:%d
",x);
29     if(GetTop(&S,&x)==1){
30         printf("当前栈顶元素为:%d
",x);
31     }
32     printf("请输入待入栈元素:");
33     scanf("%d",&x);
34     Push(&S,x);
35     if(Empty(&S)==1)
36         printf("栈为空
");
37     else
38         printf("栈非空
");
39     return 0;
40 }
41 
42 void InitStack(SeqStack * S){
43     S->top=-1;
44     printf("初始化成功!
");
45 }
46 void Push(SeqStack * S,DataType x){
47     if(S->top==StackSize-1){
48         printf("上溢错误,插入失败
");
49     }
50     S->data[++S->top]=x;
51     printf("入栈成功!
"); 
52 }
53 int Pop(SeqStack * S,DataType * ptr){
54     if(S->top==-1){
55         printf("下溢错误,删除失败
");
56         return 0;
57     }
58     *ptr = S->data[S->top--];
59     return *ptr;
60 }
61 int GetTop(SeqStack * S,DataType*ptr){
62     if(S->top==-1){
63         printf("下溢错误,取栈顶失败
");
64         return 0;
65     }
66     *ptr = S->data[S->top];
67     return 1;
68 }
69 int Empty(SeqStack * S){
70     if(S->top==-1)
71         return 1;
72     else
73         return 0;
74 }
75 int Print(SeqStack * S){
76     printf("栈内元素:
");
77     for(int i=0;i<=S->top;i++){
78         printf("%d ",S->data[i]);
79     }
80     printf("
");
81 }

 

以上是关于顺序栈的基本操作的主要内容,如果未能解决你的问题,请参考以下文章

顺序栈的基本实现

数据结构&算法08-栈概念&源码

C/C++数据结构-完整代码受限线性表:栈(栈的顺序存储,栈的链式存储,就近匹配,中缀表达式和后缀表达式)

数据结构学习笔记——栈的基本知识和顺序存储结构实现栈(顺序栈)

数据结构基础学习——栈的概念及代码实现

栈与队列:栈的顺序储存结构