堆疊資料結構只允許資料自有序列表(前端)做輸入,輸出操作
最後被輸入的資料項會最先被取出來
具有先進後出的filo(first in last out)的特性
堆疊的應用舉例
回到原來的程式中
表示式的轉換與求值
二叉樹遍歷
使用stack類
stack類表示後進先出的物件堆疊,它通過五個操作對類vector進行了擴充套件,允許將向量視為堆疊
push(e item )向棧中壓入乙個值
pop()從棧頂彈出值
peek()取出頂點值用
boolean empty() 測試堆疊是否為空
int search(object 0)在堆疊中查詢項並確定到棧頂距離
size():大小
capacity:容量
public
class stackarray
public
stackarray(int size)
//判斷為空的函式
public boolean isempty()
return
false;
}//判斷是否已滿
public boolean isfull()
return
false;
}//入棧操作
public
void
push(object dat)
top++;
data[top]=dat;
}//出棧
public object pop()
return data[top--];
}//獲取棧頂元素
public object peek()
return data[top];
}//返回堆疊的大小
public
intsize()
//查詢
public
void
search(string dat)
for(int i=top;i>-1;i--)
}system.out.println("你查詢的元素不在");
}//返回堆疊的容量
public
intcapacity()
public
static
void
main(string args)
system.out.println("**********==");
system.out.println(stack.size());
system.out.println(stack.capacity());
}}
堆疊的順序儲存
堆疊是一種特殊的線性表,是一種線性結構,只能對棧的頂端做操作,操作有入棧和出棧兩種,就是插入和刪除。堆疊一定要遵循先進後出 或叫後入先出 原則,就是最後乙個進去的元素一定是第乙個出來的。那麼堆疊要怎麼實現?第乙個很簡單的方法就是用乙個一維陣列,因為棧是一種按順序儲存的結構,所以可以用一維陣列來儲存棧...
用列表實現順序表的基本操做
用列表實現順序表的基本操做 class seqlist def init self,max space 30 self.max space max space max space最大分配空間 self.sl max space 0 申請乙個列表 self.length 0 記錄實際元素的個數 def...
堆疊的順序儲存 順序棧
堆疊的順序儲存結構簡稱順序棧,它是利用一組位址連續的儲存單元依次存放自棧底到棧頂之間的元素。順序棧本質是順序表的簡化,唯一需要確定的是用順序表的那一段表示棧底。通常把順序表的表頭 陣列中下標為0 的一端作為棧底,同時附設指標top指示的棧頂元素在順序表中的位置,top也被成為棧頂指標。由於順序表都是...