棧的鏈式儲存 c實現的幾種基本操作

2021-06-16 07:57:05 字數 1094 閱讀 9247

我們都知道單鏈表中的結尾有乙個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 )

寫多還是會愈發的順手。寫這個示例時,主要的問題在於實現時節點和鍊錶的表示指標有點混亂,不能夠馬上的反映出來。革命尚未成功,同志仍需努力啊!寫完之前的 停下來看了下別人前面內容的實現過程,對比發現結構還是比較混亂的。本例中將節點用結構體表示,包含兩個資料成員,分別是資料域和指標域。然後將棧定義為乙個模...