資料結構 四 棧和佇列

2022-08-16 15:24:10 字數 1649 閱讀 4294

adt 棧(stack)

data

同線性表。元素具有相同的型別,相鄰元素具有前驅和後堆關係。

operation

initstack ( *s ):初始化操作.建立乙個空棧s。

destroystack ( *s ):若棧存在,則銷毀它。

clearstack (*s):將棧清空。

stackempty ( s ):若棧為空,返回true,否則返回

false

。 gettop (s,*e):若棧存在且非空,用e返回s的棧頂元素。

push (*s,e):若棧s存在,插入新元素e到棧s中並成為棧頂元素。

pop (*s,*e):刪除棧s中棧頂元素,並用e返回其值。

stacklength (s):返回回棧s的元素個數。

中綴轉化為字尾,棧用來進出運算的符號

字尾轉化為中綴,棧用來進出運算的數字

adt 佇列(queue)

data

同線性表。元素具有相同的型別,相鄰元素具有前驅和後繼關係。

operation

initqueue(*q):初始化操作,建立乙個空佇列q。

destroyqueue(*q):若佇列q存在,則銷毀它。

clearqueue(*q):將佇列 q 清空。

queueempty(q):若佇列q為空,送回true,否則退回false。

gethead(q, *e):若佇列q存在且非空,用e返因佇列q的隊頭元素。

enqueue(*q,e):若佇列q存在,插入新元素e到佇列q中並成為隊尾元素。

dequeue(*q, *e):刪除佇列q中隊頭元素,並用e返回其值。

queuelength(q):送回佇列q的元素個教。

辦法二

大話資料結構(四) 棧和佇列

棧 一種線性表,限定只能在表尾進行插入和刪除的操作。這裡的表尾指的是棧頂,lifo結構。兩棧共享空間的資料結構一般用在兩個棧的空間需求有相反關係時,也就是乙個棧在增長時另乙個棧在縮短的情況,但是前提是兩個棧具有相同的資料型別。迭代和遞迴 迭代使用的是迴圈結構,遞迴使用的是選擇結構。遞迴必須至少有乙個...

資料結構之棧和佇列(四)

佇列也是一種特殊的線性表,其特點是先進先出,順序儲存結構的佇列存在陣列溢位的情況,所以一般選擇鏈式儲存結構。1.標頭檔案queue.h typedef int elemtype typedef struct node queuenode,queueptr typedef struct nodefla...

資料結構 棧和佇列

棧 基礎 知識棧 練習題 佇列 基礎知識 棧示意圖 後進先出 順序棧結構定義 define maxsize 1024 struct stack 操作函式 push 入棧 pop 出棧 struct lstack 鏈棧示意圖 操作函式 push 入棧 pop 出棧 注意 也可以直接呼叫系統已經寫好的庫...