資料結構之棧

2021-10-02 23:52:12 字數 1327 閱讀 4451

棧是一種運算受限的線性表。其限制是僅允許在表尾進行插入或者刪除操作。因此,對棧來說,表尾端有其特殊含義,稱為棧頂(top),相應的,表頭端稱為棧底(bottom)。不含元素的空表稱為空棧。

假設棧 s=(a1,a2,…,an),則稱 a1 為棧底元素,an為棧頂元素。棧中的元素按a1,a2,…,an的次序進棧,退棧的第乙個元素為棧頂元素。換句話說,棧的修改是按後進先出的原則進行的(如下圖)。因此,棧又稱為後進先出的線性表。

棧的基本操作有在棧頂進行插入(入棧)和刪除(出棧),棧的初始化,判空及取棧頂元素等。下面將一一實現。

package util;

public

class

mystack

//壓入元素

public

void

push

(int element)

newarr[elements.length]

= element;

elements = newarr;

}//取出棧頂元素

public

intpop()

int element = elements[elements.length-1]

;int

newarr =

newint

[elements.length-1]

;for

(int i=

0;i) elements = newarr;

return element;

}//檢視棧頂元素

public

intpeek()

return elements[elements.length-1]

;}//判斷棧是否為空

public

boolean

isempty()

//遍歷棧(自棧頂到棧底)

public

void

showstack()

for(

int i=elements.length-

1;i>=

0;i--)}

}

簡單test:

package classify;

import util.mystack;

public

class

stacktest

}

資料結構之棧結構

棧結構是一種filo first in last out 的批量資料儲存結構。其特點是先進後出,後來者居上 棧的基本屬性 棧記憶體 棧頂標記 棧的當前元素個數 萬金油屬性 size 棧的基本操作 萬金油的的操作 根據實現的不同將棧結構分為兩種 1.鏈式棧 2.陣列 利用有表頭鍊錶的頭插法來完成棧的功...

資料結構之棧

4.8.2 四則運算表示式求值 程式如下所示 include include include 定義結點型別 typedef struct node node,pnode 定義棧的抽象資料型別 typedef struct stack stack,pstack 函式宣告 對棧進行初始化的函式 void...

資料結構之棧

資料結構之棧 本文討論棧的陣列實現。棧需要有如下幾個屬性 棧的容量 capacity 棧頂指標 儲存棧元素的陣列 根據這幾個屬性可以定義乙個棧結構體 struct stackrecord 然後定義棧的操作,一般可以包含如下幾個 棧的建立 stack createstack int size 棧的銷毀...