資料結構c 順序表實現棧(共享棧)

2021-10-10 17:27:55 字數 568 閱讀 3252

基於順序表實現,陣列有連個端點,兩個端點為兩個棧的棧低,兩個棧共用乙個陣列。

#pragma once

const

int size =20;

enum statcknumber

;class

sharedstacks

void

push

(int d, statcknumber statck)

else

//第二個棧入棧

}int

pop(statcknumber statck)

}else

//第二個棧入棧

}return data;

}private

:int data[size]

;int top1;

//第乙個棧頂

int top2;

//第二個棧頂

};

該方法只適用於兩個棧的型別一樣的情況,並且由於採用的是順序表儲存,棧滿時擴充套件很麻煩,可以判斷棧滿時,重新申請一片更大的儲存空間,將舊的資料拷貝到新的記憶體空間,然後釋放舊的記憶體空間。

資料結構(C實現) 順序棧

棧是限定僅在表的一端進行插入或刪除的純屬表,通常稱允許插入,刪除的一端為棧頂 top 相應在的,則稱另一端為棧底 bottom 不含元素的棧則稱為空棧。所設棧s 則稱a1為棧底元素,an為棧頂元素。根據棧的定義可知,棧頂元素總是最後入棧並且最先出棧的 棧底元素總是最先入棧並且最後出棧的。即棧是按後進...

資料結構遍歷順序棧 資料結構 順序棧的實現

資料結構 順序棧的實現 1 快速開始 棧是一種遵循元素後進 push 先出 pop 規則的線性表,即最後加入的元素最先出來,它的實現可以用陣列或者鍊錶。它的特點如下 先出,先入後出。除了頭尾節點之外,每乙個元素有乙個前驅,有乙個後繼。2 實現棧 我們已經說過了,棧是一種線性表,故其底層是基於陣列或者...

資料結構 基於順序表實現棧

首先 要了解棧這樣一種結構。棧 一種特殊的線性結構,只允許在固定的一端進行插入和刪除元素操作。進行資料插入和刪除操作的一端稱為棧頂,另一端稱為棧底。不含任何元素地棧稱為空棧,棧又稱為後進先出的線性表。基於動態順序表實現的棧,實現以下操作 為了更好地實現以上操作,需要對棧進行初始化與銷毀,容量不夠時自...