專題一 線性結構的兩種常見應用之一棧

2021-09-11 18:11:18 字數 1466 閱讀 4713

一、定義

一種可以實現「先進後出」的儲存結構,棧類似於乙個箱子

二、分類

1.靜態棧:核心用陣列實現

2.動態棧:核心用鍊錶實現

三、演算法

出棧

壓棧(入棧)

四、應用

函式呼叫

中斷表示式求值(科學計算器)

記憶體分配

緩衝處理

迷宮

五、程式

#include#include#include//節點的結構體

typedef struct node

node,*pnode;

typedef struct stack

stack,*pstack;

//函式宣告

void initstack(pstack); //初始化棧

pnode createnode(); //建立乙個新節點

void pushstack(pstack, int); //入棧

bool popstack(pstack); //出棧

bool popstacklevel(pstack, int*); //出棧(新增乙個指標變數存放出棧的值的位址)

void display(pstack); //輸出棧

void clearstack(pstack); //一鍵清空

//主函式

int main()

//為新的節點分配記憶體

pnode createnode()

pnew->pnext = null; //指標域指向null

return pnew; //將節點返回

}//初始化棧

void initstack(pstack pstack)

//入棧

void pushstack(pstack pstack, int i)

//出棧

bool popstack(pstack pstack)

else }

//出棧(新增乙個指標變數存放出棧的值的位址)

bool popstacklevel(pstack pstack, int * val)

else }

//顯示棧

void display(pstack pstack)

printf("\n");

return;

}//一鍵清空

void clearstack(pstack pstack)

return;

}

專題一 線性結構的兩種常見應用之一 佇列

一 定義 一種可以實現 先進先出 的儲存結構 只在一端進行操作 二 分類 1.鏈式佇列 鍊錶實現 2.靜態佇列 陣列實現 三 應用 所有和時間有關的操作都有佇列的影子 四 程式 實現功能 基於陣列的迴圈佇列實現 最後修改日期 2019.03.03 標頭檔案 include include inclu...

資料結構《十一》 執行緒結構 佇列的兩種實現

乙個佇列的抽象資料型別 package com.mo.queue 佇列的抽象資料結構 public inte ce queue 陣列實現的佇列 package com.mo.queue 順序迴圈佇列 陣列實現 public class seqqueue implements queue public...

資料結構 兩種常見的查詢演算法

查詢是在大量的資訊中尋找乙個特定的資訊元素,在計算機應用中,查詢是常用的基本運算 順序查詢演算法 演算法思想 演算法實現演算法的c 實現,實現 來自王治和教授資料結構課堂的總結 enum error code error code sequentialsearch int entry,int siz...