我們都知道單鏈表中的結尾有乙個null,正好棧的鏈式實現中就是利用了這個特性,把null看成是棧的底部;然後呢,把進棧和出棧都是從棧頂指標開始的。正好利用了這樣的特性,使得鏈式棧使用青來沒有什麼難度。
//
#include "stdafx.h"
#include
using namespace std;
typedef struct node
stacknode,*stacklink;
// 建立乙個長度為n的鏈式棧
stacklink creat(int n)
else
r = p;
}return top;
}// 出事化乙個鏈式棧
void initialstacklist(stacklink& top)
// 測試乙個棧是否為空;
int isempty(stacklink& top)
// 取當前棧頂元素;
void gettopstack(stacklink& top,int& temp)
else
}
// 棧中的進棧
int pushstack(stacklink& top,int item)
else
}
// 出棧問題
int pop(stacklink& top,int& itemp)
else
return 1;
}
// 輸出棧中的元素;
void print(stacklink& top)
else
}cout << endl;
}
int main(int argc,char* argv)
else
return 0;
}
鏈式儲存的棧的實現
2013 08 18 15 59 58 順序儲存的棧的缺點 儲存空間有限,當棧中元素個數超出定義的棧的maxsize時,再進行插入,就會出現訪問越界。當然,可以通過realloc重新分配記憶體以擴大容量,不過這樣不但會增加複雜度,而且要求儲存空間是連續的,當記憶體中沒有這麼大的連續空間時,就會發生記...
C 棧的順序儲存和鏈式儲存的實現
棧是最常見的資料結構,其特點是後進先出 last in first out 也是鍊錶的特殊形式,所以和鍊錶一樣,有兩種儲存方式,第一是順序儲存的棧,方便快速讀寫資料,但是棧的長度必須先固定 第二種是鏈式儲存的棧,可以不用定義棧的長度,可以大量插入資料,如果不是物理記憶體使用完的話,可以儲存大量的資料...
棧的鏈式儲存結構基本功能實現(C )
寫多還是會愈發的順手。寫這個示例時,主要的問題在於實現時節點和鍊錶的表示指標有點混亂,不能夠馬上的反映出來。革命尚未成功,同志仍需努力啊!寫完之前的 停下來看了下別人前面內容的實現過程,對比發現結構還是比較混亂的。本例中將節點用結構體表示,包含兩個資料成員,分別是資料域和指標域。然後將棧定義為乙個模...