c语言顺序栈的基本操作
生活随笔
收集整理的這篇文章主要介紹了
c语言顺序栈的基本操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
該程序包含了順序棧的置空、判斷是否為空、判斷是否為滿、入棧、出棧和取棧頂元素等幾種操作;
#include <stdio.h> #define size 100 typedef int datatype; //假定棧元素的類型為int typedef struct {datatype data[size];int top; }seqstack;void initstack(seqstack *s) //置空 {s->top=-1; //所有操作必須先置空 } int stackempty(seqstack *s) //判斷是否為空 {return s->top==-1; }int stackfull(seqstack *s) //判斷是否為滿 {return s->top==size-1; }int push(seqstack *s,datatype x) //入棧 {if(stackfull(s)) //自定義函數可以引用自定義函數 ,不需要通過實參輸入; {puts("棧滿"); // 新大陸,直接輸出字符串包括中文; return 0;}s->data[++s->top]=x;return 1; //棧的數組和棧的top ,先++在入 }int pop(seqstack *s,datatype *y) //出棧 {if(stackempty(s)){puts("棧空");return 0; }*y=s->data[s->top--];return 1; }int getstack(seqstack *s,datatype *e) //取棧頂元素 {if(stackempty(s)){puts("棧空");return 0; //因為在函數里面,所以輸出之后會自動換行,不需要在添加自動換行符; }*e=s->data[s->top];return 1; }void main() {seqstack s; //此處s是給定了空間的,可以直接使用 int x,y,e;initstack(&s); printf("已經置空\n");printf("是否為空:%d\n",stackempty(&s));printf("是否為滿:%d\n",stackfull(&s));scanf("%d",&x);printf("入棧是否成功:%d\n",push(&s,x));printf("出棧是否成功:%d\n",pop(&s,&y));printf("取棧頂元素是否成功:%d\n",getstack(&s,&e)); }各位兄弟,如果這篇文章對你有那么一點點的幫助的話,就給我一點鼓勵點個贊吧,兄弟我在這里謝謝大家啦!
總結
以上是生活随笔為你收集整理的c语言顺序栈的基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql添加普通用户用于管理单一数据库
- 下一篇: H264参数语法文档: SPS、PPS、