C语言——顺序栈(Stack)
生活随笔
收集整理的這篇文章主要介紹了
C语言——顺序栈(Stack)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
定義:棧是限定僅在表尾進行插入或者刪除操作的線性表。因此對棧來說,尾端有其特殊含義,稱為棧頂(top),相應的表頭端稱為棧底(bottom)。不含元素的空表稱為空棧。
棧的特性:棧又稱為先進后出的線性表。
下面我們來利用順序棧實現基本的棧的操作:
先定義順序棧:
#define MAXSIZE 10 typedef struct {int data[MAXSIZE];//空間--靜態分配int top;//棧頂 }Stack;其次對棧進行初始化
void initStack(Stack &s) {s.top=0;//棧為空 }入棧操作:
//進棧(壓棧) void push(Stack &s,int x) {if(!isFull(s))//定義一個函數判斷棧里面是否滿了,滿的話返回true;{s.data[s.top++]=x;}else {cout<<"The stack is full."<<endl;} }出棧:
void pop(Stack &s,int &x) {//判斷棧是否為空,為空返回trueif(!isEmpty(s)){x=s.data[--s.top];}else {cout<<"The stack is empty."<<endl;} }輸出棧中的元素:
void showStack(Stack s) {int i=s.top-1;cout<<"stack:";while(!isEmpty(s)&&i>=0){cout<<s.data[i--]<<" ";}cout<<endl; }順序棧的基本操作如上所示。大家是否掌握了呢??下面給大家出一個題目:輸入十進制數據,將十進制數據轉化為二進制數據,大家想想如何利用棧實現呢??給大家一點提示棧是先進后出!!!
如果大家對C/C++感興趣的話,本小編這里準備了一大堆的學習資料可以免費分享給有需要的朋友們,學習群:前面八七三,中間五二一,后面八零三。連起來就可進群然后免費領取一份學習資料哦!!!!
總結
以上是生活随笔為你收集整理的C语言——顺序栈(Stack)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python实现GCS bucket断点
- 下一篇: Python操作mySql数据库封装类