棧是一種常用的資料結構,棧常用在系統軟體和或者演算法中。
棧使用陣列來做順序棧,鏈式站用鍊錶來做。今天使用動態陣列來設計棧。
棧,後進先出(lifo),先進後出(filo)
push,進棧
pop,出棧
peek,看一下棧頂
我使用的是vs ultimate2013
新建乙個空專案,在標頭檔案裡面新增兩個標頭檔案mystack.h和myutil.h
在原始檔裡面新增main.cpp
//當棧的長度不夠時,自動擴大兩倍
#ifndef _myutil_h
#define _myutil_h
template
void changesize1d(t* &a, const
int oldsize, const
int newsize)
#endif
#ifndef _mystack_h
#define _mystack_h
#include "myutil.h"
//mystack類,
template
class mystack;
//出棧
template
void mystack::pop()
//判斷是否為空
template
inline
bool mystack::isempty() const
//輸出棧頂
template
inline t& mystack::top() const
//構造棧
template
mystack::mystack(int stackcapacity):capacity(stackcapacity)
//析構棧
template
mystack::~mystack()
//入棧
template
void mystack::push(const t& item)
stack[++top] = item;
}#endif
//用來測試
總結:棧是比較常用的資料結構,也是演算法中經常的考點。使用動態陣列來構造順序棧。
資料結構與演算法(C語言版) 鏈式棧
用鍊錶做的堆疊,鍊錶可以動態的建立一些節點,在插入和刪除節點方面要快很多。先進後出棧操作 push入棧 pop出棧 top返回棧頂資料 在vs2013新建專案,在標頭檔案中加入linkedstack.h在原始檔中加入main.cpp ifndef linkedstack h define linke...
資料結構(C語言版) 棧
1 棧 僅在表尾進行插入和刪除操作的線性表。後進先出lifo。1 表尾端 允許插入和刪除的一端 為棧頂,表頭端 不允許插入和刪除的一端 為棧底。2 入棧 插入元素的操作。出棧 刪除棧頂元素 2 棧的兩種儲存表示方式 2 鏈棧 棧的鏈式儲存結構 優點是便於多個棧共享儲存空間和提高效率。3 括號匹配檢驗...
C語言版資料結構演算法
c語言版資料結構演算法 c語言資料結構具體演算法 c語言資料結構演示軟體 演算法效率分析 線性表 棧和佇列 串 陣列和廣義表 樹和二叉樹 圖 查表 排序 動態儲存管理 上面兩個鏈結就是 資料結構 c語言版 嚴蔚敏教授嚴奶奶的書籍配套軟體 她的書看著很枯燥乏味,但真的非常嚴謹,嚴奶奶也很貼心的做了乙個...