棧的基本運算及注意

2021-06-21 09:27:56 字數 794 閱讀 7011

首先注意兩個小問題:

1. void initstack(sqstack *&s)和clearstack(sqstack *&s)這兩個函式必須用

sqstack *&s

其它都可以不用,總之函式內要改s的值的時候要用(用sqstack *s就錯了),而內只是用到*s,s->時可以不用(用

sqstack *&s

也不會錯)。

2.同理對於,elemtype &e和elemtype e也一樣,要傳回引數時必須用elemtype &e,而傳入引數時用elemtype e。

總之,&表示的是引用,有&符號,就表示函式內的變數和主函式的變數是同乙個,函式內改變它的值,主函式相應的變數也就跟著改變了;沒有&符號,就表示函式內的變數是主函式的變數的乙個副本,在函式內改變其值,是不會改變主函式中變數的值的

typedef struct

sqstack;

//建立棧

void initstack(sqstack *&s)//要給s分配記憶體,改變其內容

//求棧的長度

void stacklength(sqstack *s)

//進棧

void push(sqstack *s,elemtype e)

}//出棧

void pop(sqstack *s,elemtype &e)

}//取出棧頂元素

void gettop(sqstack 8s,elemtype &e)

}//列印出棧中元素

void printstack(sqstack *s)

棧的基本運算

棧和佇列是兩種特殊的線性表,它們的邏輯結構和線性表相同,只是其運算規則較線性表有更多的限制,故又稱它們為運算受限的線性表。棧和佇列被廣泛應用於各種程式設計中。棧的定義及基本運算 1 棧的定義 棧 stack 是限制僅在表的一端進行插入和刪除運算的線性表。1 通常稱插入 刪除的這一端為棧頂 top 另...

棧基本知識點及基本運算的實現

什麼是棧 棧是一種只能在一端插入或刪除的線性表。在表中,允許進行插入或刪除的一端叫做棧頂。ps 我覺得棧就是乙個陣列,棧頂就是下標 表的另一端稱為棧底,當棧中沒有元素時稱為空棧,棧的插入稱為入棧或進戰,棧中資料元素的刪除稱為出棧或退棧。棧的特點 後進先出 last in first out 就是說後...

實現順序棧基本運算 棧

c語言實現順序棧的入棧 出棧 棧元素讀取操作 1 include 2 include 3 define maxsize 20 4 define maxnum 10 5 define elemtype int 6 typedef struct sqstack 7 sqstack 儲存結構型別名 111...