線性棧和單向鍊錶的實現

2021-09-11 18:44:43 字數 2034 閱讀 7693

陣列實現

public

class

stack

}//自定義線性棧

class

mystack

//初始化棧建構函式

public

mystack

(int begin)

//進棧

public

void

instack

(int e)

//元素e進棧,有效長度加1

array[size]

= e;

size++;}

//出棧

public

intoutstack()

//轉移棧頂元素,有效長度-1

int e = array[size -1]

; size--

;//棧容量至少為10,當 有效長度 < 棧容量一半 時,縮減棧容量(1/2縮小)

if(size < array.length /

2&& array.length >10)

//返回出棧元素

return e;

}//獲取棧頂元素

public

inttop()

//獲取棧內元素個數

public

intnumber()

//清空棧

public

void

clear()

//列印棧內元素

public

void

print()

else

else

} system.out.

println

(s);}}

//改變棧的容量

public

void

extend

(int e)

//新棧容器賦值給原棧

array = newarray;

}}

頭插法實現

public

class

linkstack

stack.

print()

;//彈棧3次並列印

for(

int i =

0;i <

3;i++

) stack.

print()

;//輸出當前棧頂元素

system.out.

println

(stack.

top())

;//列印當前棧內元素個數

stack.

number()

;//清空棧並列印

stack.

clear()

; stack.

print()

;}}class

mylinkstack

//節點類

private

class

node

public

node

(int e,node next)

}//進棧(頭插法)

public

void

inlinkstack

(int e)

//出棧(從棧頂釋放)

public

intoutlinkstack()

else

}//獲取棧頂元素

public

inttop()

獲取棧內元素個數

public

void

number()

//清空棧

public

void

clear()

//列印棧內元素

public

void

print()

else

else

} system.out.

println

(path);}

}}

單向線性鍊錶的實現

用c實現的單向線性鍊錶,支援追加,插入節點,刪除節點,清空,刪除匹配節點,鍊錶反轉,有序插入等操作。分為三個檔案list.h包含鍊錶結構和函式的宣告。list.cpp是各種函式的實現,test.cpp包含測試 list.h ifndef list h define list h include us...

單向鍊錶實現棧

首先我們要知道 棧 為何物 他是一種儲存資料的方法 有點類似子彈夾 擁有先進後出的特點 同時進棧與出棧都只能在一端進行.public inte ce mystack public class node public object getdate public void setdate object ...

Python使用list和單向鍊錶實現棧

class arrstack 使用list實現棧,第乙個元素為棧底,最後乙個元素為棧頂 def init self 初始化為空list self.items defstackin self,value 入棧 param value 入棧的值 return null defstackpop self ...