棧是一種只能在一端進行插入或刪除操作的線性表。表中允許進行插入、刪除操作的一端稱為棧頂。 棧頂的當前位置是
動態的,棧頂的當前位置由乙個稱為棧頂指標的位置指示器指示。表的另一端稱為棧底。
當棧中沒有資料元素時,稱為空
棧。棧的插入操作通常稱為進棧或入棧,棧的刪除操作通常稱為退棧或出棧。怎麼理解堆疊呢?比如有一摞書,規定只能從最上面取放,那麼最先放的書會被後來放的書壓到下面,你取時只能從最上面把其他書取走才能取到最先放的那本,即filo(first in last out)或者lifo(last in first out)都是乙個意思。
#include #include #include#define maxsize 100//棧的大小
typedef char elemtype;
typedef struct
sqstack,*pstack;
//初始化堆疊,注意是引用
void initstack(pstack &ps)
ps->top = -1;
printf(" 初始化成功\n");
}//銷毀堆疊
void destroystack(pstack ps)
//判斷是否為空
bool isempty(pstack ps)
//判斷是否棧滿
bool isfull(pstack ps)
//進棧
bool push(pstack ps, elemtype e)
ps->top++;
ps->data[ps->top] = e;
printf(" %c入棧成功\n", e);
return true;
}//出棧
bool pop(pstack ps, elemtype &e)
e = ps->data[ps->top];
ps->top--;
return true;
}//取得棧頂元素
bool gettop(pstack ps, elemtype &e)
e = ps->data[ps->top];
return true;
}//獲取棧的大小
int getlength(pstack ps)
void main()
printf("\n");
printf(" (8)棧為%s\n",(isempty(s)?"空":"非空"));
printf(" (9)釋放棧\n");
資料結構之堆疊
堆疊和佇列是兩種面向表的資料結構,它們都提供了易於理解的抽象。堆疊中的資料只能在表的某一端進行新增和刪除操作,反之佇列中的資料則在表的一端進行新增操作而在表的另一端進行刪除操作。堆疊被廣泛用於從表示式計算到處理函式呼叫的任何程式語言的實現中。而佇列則用在區分優先次序的作業系統處理以及模擬現實世界的事...
資料結構之堆疊
定義 堆疊 stack 代表了乙個 後進先出 的物件集合。當您需要對各項進行後進先出的訪問時,則使用堆疊。當您在列表中新增一項,稱為推入元素,當您從列表中移除一項時,稱為彈出元素。stack類的方法和屬性 類成員說明 count 獲取 stack 中包含的元素個數。clear 從 stack 中移除...
資料結構(java)之堆疊
首先需要知道的是棧有先進後出的特性 1.棧的介面類 public inte ce stack2.棧介面的實現類 public class arraystackimplements stack public arraystack 獲取棧的長度 override public int getsize 判...