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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

数据结构期末复习(に)--链式栈定义及使用

發(fā)布時間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构期末复习(に)--链式栈定义及使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1 #include <iostream> 2 using namespace std; 3 #define MAXSIZE 100 //鏈式棧存儲空間初始分配大小 4 #define OK 1 //鏈棧通常用單鏈表表示,節(jié)點結構與單鏈表相同。 5 #define ERROR 0 6 #define OVERFLOW -1 7 typedef struct StackNode //鏈棧結構 8 { 9 int data; //節(jié)點數(shù)據(jù) 10 struct StackNode *next; //節(jié)點指針,指向下一個節(jié)點 11 }StackNode,*LinkStack; 12 13 //初始化,構造一個空棧 14 int InitStack(LinkStack &s) 15 { 16 s=NULL; //棧頂指針置空 17 return 0; 18 } 19 20 //入棧操作 21 int PushStack(LinkStack &s,int e) 22 { 23 LinkStack p = new StackNode; //生成新節(jié)點 24 p->data = e; //將新節(jié)點數(shù)據(jù)域置為e 25 p->next=s; //將新節(jié)點插入棧頂 26 s=p; //修改棧頂指針為p 27 return 0; 28 } 29 30 //出棧操作 31 int PopStack(LinkStack &s) 32 { 33 LinkStack p = new StackNode; 34 if(s==NULL) //棧空 35 return -1; 36 p = s; //用p臨時保存棧頂空間,以備釋放 37 s = s->next; //修改棧頂指針 38 delete p; //釋放原棧頂元素的空間 39 return 0; 40 } 41 42 //取棧頂元素 43 int GetTop(LinkStack s) 44 { 45 if(s!=NULL) //棧非空 46 return s->data; //棧頂指針不變,返回棧頂元素的值 47 } 48 49 //輸出棧 50 void printstack(LinkStack s) 51 { 52 while(s!=NULL) //棧非空 53 { 54 cout << GetTop(s) << " "; 55 s=s->next; //不要寫成popstack(s),不然輸出一次后就棧就空了, 56 //沒法第二次輸出。 57 } 58 cout << endl; 59 } 60 61 int main() 62 { 63 LinkStack s; 64 InitStack(s); 65 for (int i = 0; i < 10; ++i) 66 { 67 PushStack(s, i); 68 } 69 int a, b; 70 cout << "1--print,2--pop,3--push,0--exit\n"; 71 for(int i = 0; i < 4; ++i) 72 { 73 cin >> a; 74 if (a == 1) 75 { 76 printstack(s); 77 } 78 else if (a == 2) 79 { 80 cout << "元棧為:"; 81 printstack(s); 82 PopStack(s); 83 cout << "pop后棧為:"; 84 printstack(s); 85 } 86 else if (a == 3) 87 { 88 cout << "元棧為:"; 89 printstack(s); 90 cout << "請輸入要插入的數(shù):"; 91 cin >> b; 92 PushStack(s, b); 93 cout << "插入后棧為:"; 94 printstack(s); 95 } 96 else if (a == 0) 97 { 98 return 0; 99 } 100 } 101 return 0; 102 } 103

?

轉載于:https://www.cnblogs.com/DSYR/p/9163050.html

總結

以上是生活随笔為你收集整理的数据结构期末复习(に)--链式栈定义及使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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