C 動態棧的建立

2021-08-10 21:43:04 字數 1449 閱讀 9344

一、什麼是棧

棧(stack)又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。

棧可以是個容器,並且這個容器存放元素的特點是

先進後出

棧的介面有 :

push();         //將元素壓入棧

pop();           //刪除棧頂元素

top();            //讀取棧頂元素

size();           //棧內元素的個數

empty();        //棧是否為空,為空返回1,否則返回0

二、棧的實現

棧:(1)靜態棧:

優點:實現簡單。

缺點:棧大小固定,當空間存滿後無法再存,或給的空間太大浪費空間

(2)動態棧

缺點:相比靜態棧**實現複雜容易出錯

優點:大小不固定,當記憶體不足時可自己開闢空間

動態棧的實現:

#define max_stack 3                        //1.動態棧

templateclass stack

void push(const t& data) //元素入棧

void pop() //頂部元素出棧

t top() //讀取頂部元素

t top()const

size_t size()const //獲取當前元素個數

bool empty()const //判斷棧是否為空

private:

void checkcapacity() //增容函式

}} t* _array;

size_t _capacity;

size_t _size;

};

棧的呼叫:

int main()

{ stacks;

s.push(1); //壓棧

s.push(2); //壓棧

s.push(3); //壓棧

s.push(4); //壓棧

s.push(5); //壓棧

cout << s.size() << endl; //棧內元素個數

cout<

C 建立動態陣列

int sum 0 arraylist al new arraylist private void button1 click object sender,eventargs e while str null str string line new string al.count 1 al.copy...

C 建立動態陣列

每乙個程式在執行時都占用一塊可用的記憶體空間,用於存放動態分配的物件,此記憶體空間成為程式的自由儲存區或堆。c 使用new和delete表示式實現咋說自由儲存區內分配儲存空間。陣列變數通過指標型別 陣列名稱 和維數來定義。而動態分配陣列時,只需要指定型別和陣列長度,不必為陣列物件命名,new表示式返...

C 建立動態陣列

靜態陣列放在堆疊,動態陣列放在堆 自由儲存區 c語言建立動態陣列 int p int malloc n sizeof int free p c 建立動態陣列 int pia new int n 內建型別沒有初始化 string psa new string 10 預設的建構函式初始化 int pia...