日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

栈的两种存储结构

發布時間:2024/10/12 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 栈的两种存储结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

棧的兩種存儲結構

棧的特點:

在固定一端進行插入刪除,在棧頂進行

鏈式存儲結構定義(不帶頭結點):

class StackNode { public:int data;StackNode *next;StackNode():next(NULL){}}; class StackLine { public:StackNode *top;int count;StackLine():top(NULL),count(0){}//無初始化函數因為無需頭結點void pop(StackLine *t);void push(StackLine *t,int x);bool isempty(StackLine *t);int Get_Top(StackLine *t); }; 鏈式棧結構定義

出棧操作: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

入棧操作:

判斷棧空:top是否等于NULL

根據上述寫出鏈式結構的基本操作,同時設置計數器來計算堆棧的元素個數

#include<iostream> #include<string> #include<cstring> using namespace std; //鏈棧結構書上為帶頭節點的鏈棧結構,此為不帶頭結點的鏈棧結構 class StackNode { public:int data;StackNode *next;StackNode():next(NULL){}}; class StackLine { public:StackNode *top;int count;StackLine():top(NULL),count(0){}//無初始化函數因為無需頭結點void pop(StackLine *t);void push(StackLine *t,int x);bool isempty(StackLine *t);int Get_Top(StackLine *t); }; void StackLine::pop(StackLine *t) {if (t->count == 0)cout << "此時棧空\n";else {StackNode *tem;tem = t->top;//top指向待釋放的節點top = t->top->next;//順序為先確定指向在釋放節點delete tem;}t->count--; } void StackLine::push(StackLine *t, int x) {//創建一個新節點再確定指向StackNode *s = new StackNode();s->data = x;if (t->count!=0){//棧非空s->next = t->top;t->top = s;}else {//棧空s->next = NULL;t->top = s;}t->count++; } bool StackLine::isempty(StackLine *t) {if (t->count == 0)return true;else return false; } int StackLine::Get_Top(StackLine *t) {return t->top->data;}

順序存儲結構:

如下圖所示,數組大小為max=5,用top變量來指示棧頂元素

備注:在進行入棧操作時,

1.stack.s[s.top]=x;

?2. s.top++;

這兩句語句的執行順序可以不同,具體情況根據top初始化的值來確定:若top=-1,則2語句先執行,若top=0,則語句1先執行

?

?則順序結構基本操作:

#include<iostream> #include<string> #include<cstring> const int max = 100; using namespace std; class Stack { public:int s[max];int top;Stack(){top = -1;memset(s,0,sizeof(s));}//構造函數void push(int x);void pop();int Get_Top();bool Notempty();}; void Stack::push(int x) {//判斷有效性if (top>=max-1)cout << "棧滿\n";else s[++top] = x; }//top位置 void Stack::pop() {//判斷有效性if (top <=-1)cout << "棧空\n";else --top; } int Stack::Get_Top() {//取棧頂元素的操作應發生在判斷非空之后return s[top ]; } bool Stack::Notempty() {if (top == -1)return false;else return true; } 順序結構頭文件

測試主函數

#include<iostream> #include<string> #include"順序.h" #include"鏈表.h" using namespace std; //節點數據域均為int類型 int main() {//測試順序存儲結構/*Stack *testone=new Stack();for (int i = 0; i < 5; i++)testone->push(i);cout << "此時棧頂元素為:" << testone->Get_Top() << endl;;cout << "棧中元素依次出棧\n";while (testone->Notempty())//非空{cout << testone->Get_Top() << " ";testone->pop();}*///測試鏈式存儲結構StackLine *testtwo = new StackLine();for (int i = 0; i < 5; i++)testtwo->push(testtwo,i);cout << "此時棧頂元素為:" << testtwo->Get_Top(testtwo) << endl;while (!testtwo->isempty(testtwo))//非空 {cout << testtwo->Get_Top(testtwo) << " ";testtwo->pop(testtwo);}}

重點理解:

1.在棧頂一端進行插入刪除操作,在兩種存儲結構下,插入刪除操作均在top指向的棧頂一端進行操作

2.同時top指向棧頂元素

?堆棧習題:

重點理解為:求堆棧無論順序存儲或鏈式堆棧中節點個數時,利用堆棧彈出元素直至棧空為止。

則傳入的不是指針類型參數,即在求節點的函數中可對堆棧改變,而不能將此改變傳入主函數中改變堆棧的結構。

實則也是對指針的理解

轉載于:https://www.cnblogs.com/zlspace/p/6919975.html

總結

以上是生活随笔為你收集整理的栈的两种存储结构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99ri国产精品 | 97自拍偷拍视频 | 精品午夜一区二区 | av观看一区 | 国产成人无码一二三区视频 | 免费一级suv好看的国产网站 | 99精品国产一区 | 久久免费片| 一本大道东京热无码aⅴ | 日韩色图一区 | 好吊色综合 | 国产精品一区二区不卡 | 免费在线观看视频a | 国内精品久久久久久久久久 | 国产精品9 | 日韩白浆 | 91精品在线观看视频 | 精品人妻人伦一区二区有限公司 | 红桃视频国产 | 国产乱子伦农村叉叉叉 | 亚洲国产精华液网站w | 国产精品毛片一区二区在线看舒淇 | 毛片网站在线免费观看 | 星空大象在线观看免费播放 | 91精品久久久久久久久中文字幕 | 2018自拍偷拍 | 色播激情 | 欧美精品一区二区三区三州 | 色二区 | 草青青视频| 国产精品自拍偷拍视频 | 少妇一级淫片免费看 | 精品视频无码一区二区三区 | 老司机午夜在线 | 日韩精品中文字幕在线播放 | 天天曰天天干 | 看av免费毛片手机播放 | 青青视频在线免费观看 | 欧美裸体xxxx极品少妇 | 欧美成在线观看 | 最新福利在线 | 国产黑丝在线播放 | 欧美另类在线播放 | 91丨九色丨黑人外教 | 91久久极品少妇xxxxⅹ软件 | 亚洲久草视频 | 中文字幕一区二区在线观看 | 麻豆精品91 | 免费毛片看片 | 中文字幕一区二区三区乱码 | jvid乐乐| 欧亚免费视频 | 99草视频 | 天天草天天操 | 人人狠狠综合久久亚洲 | 久久艹免费视频 | 720url在线观看免费版 | 人妖一区二区三区 | 亚洲一区电影在线观看 | 丰满护士巨好爽好大乳 | 黄色一毛片 | 99在线观看免费 | 欧美超逼视频 | 97人妻天天摸天天爽天天 | 性欧美video另类hd尤物 | 国产77777 | 热の国产 | www.亚洲欧美 | 久久精品黄aa片一区二区三区 | 久久这里只有精品9 | 国产一区二 | babes性欧美69| 国模大尺度自拍 | 91导航| 99在线观看视频 | 精品国产一 | 日韩欧美在线观看一区 | 一本大道久久a久久综合婷婷 | 黄色高清片 | 萌白酱喷水视频 | 尤物在线观看 | 成人短视频在线观看 | 亚洲性一区 | 精品一区二区三区无码按摩 | 国产学生美女无遮拦高潮视频 | 成人无码www在线看免费 | 美女色网站| 在线播放色 | 美女性生活视频 | 精品3p | 99草| 日韩色图一区 | 久操免费视频 | 亚洲精品中文字幕乱码无线 | 在线观看免费视频黄 | 日韩欧美成人精品 | 激情涩涩| 精品免费在线视频 | 嫩草影院永久入口 |