C語言棧的使用

2021-08-07 14:13:33 字數 1534 閱讀 6608

1.順序儲存結構

#include

#include

#define n 10  

typedef struct _stack 

stack;  

stack mystack= };//-1代表棧中沒有元素,將陣列全部初始化為0  

/*判斷棧是否為空,主要看stack中top的值,初始化時是乙個空棧,top=-1 

返回值:為1表示空棧,為0表示不是空棧 

*/ int isempty() 

else 

}  //設定棧為空  

void setempty() 

/*壓入乙個資料,成功返回1,失敗返回0(棧溢位)

在入棧之前需要判斷會不會導致棧溢位  

*/ int push(int data) 

else 

}  /*出棧,首先要判斷是否為空棧,如果為空直接返回

不為空,從棧頂返回乙個元素

*/ int pop() 

else 

}   

int  main()

for(i=0;i<10;i++)

while(isempty()!=1)

return 0; 

}  2.鏈式儲存結構

#include "stdafx.h"

#include

#include

using namespace std;

//棧的鏈式儲存結構及實現

//棧的結構定義

#define ok 1

#define error 0

#define true 1

#define false 0

typedef int selemtype;

typedef int status;

typedef struct stacknode

stacknode,*linkstackptr;

typedef struct linkstack

linkstack;

//棧空

status stackempty(linkstack *s)

else

}//入棧

status push(linkstack *s,selemtype e)

//出棧

status pop(linkstack *s,selemtype *e)

int _tmain(int argc, _tchar* argv)

{int pushelem = 2;

linkstack *linkst=(linkstack*)malloc(sizeof(linkstack));

linkst->count=0;

push(linkst,pushelem);//將2入棧

pushelem = 3;

push(linkst,pushelem);//將3入棧

int popelem = 0;

pop(linkst,&popelem);//出棧,結果輸出給popelem

cout<

使用鍊錶實現棧(C語言)

下邊的實現,預設在鏈棧中設定乙個頭結點,用於指向棧的第乙個元素 typedef char datatype typedef struct nodelstacknode,linkstack void initstack linkstack top 將頭結點的指標域置為空 top next null 判...

C語言棧的實現

在計算機領域,堆疊是乙個不容忽視的概念,但是很多人甚至是計算機專業的人也沒有明確堆疊其實是兩種資料結構。堆疊都是一種資料項按序排列的資料結構,只能在一端 稱為棧頂 top 對資料項進行插入和刪除。要點 堆 順序隨意棧 後進先出 last in first out 在這裡不僅僅是實現了棧,我想通過這個...

c語言棧的應用

棧的作用是將遞迴函式轉換成非遞迴函式,由於在階乘中只有乙個引數,把引數入棧即可 int nfact int n 出棧,模擬函式返回過程 while isemptystack stack return res 利用堆疊進行一位表示式的運算 在生活中用的是類似 9 7 8的表示式,這種表示式叫做中綴表示...