日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言顺序栈的基本操作

發布時間:2023/12/9 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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语言顺序栈的基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。