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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

链栈的建立、判空、入栈、出栈、求长、访顶、清空和销毁

發布時間:2025/4/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 链栈的建立、判空、入栈、出栈、求长、访顶、清空和销毁 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include<iostream> using namespace std; typedef struct node {int data;struct node*next; }Node, *stack;//初始化棧 void initialsatck(stack &s) {s = new Node;s->next = NULL; } //判斷棧是不是空的 bool isempty(stack &s) {if (NULL == s){cout << "棧不存在" << endl;//表示棧沒初始化成功exit(0);}if (s->next == NULL){return true;}return false; } //進行入棧操作push函數 void push(stack &s, int element) {//先開辟一個空間存儲新的數據Node*p = new Node;p->data = element;p->next = s->next;s->next = p; }//出棧操作 int pop(stack &s) {if (isempty(s)){exit(1);}Node* p = s->next;//按照出戰的過程,先進后出,找到棧首的下一個結點,使棧首指向取出結點的下一個結點對象s->next = p->next;int element = p->data;delete p; //清空取出數據的空間return element; } int getlength(stack& s) //取棧的地址,進行查看棧的長度 {Node* p = s;int length = 0;while (p->next != NULL){p = p->next;length++;}return length; } //獲取棧頂的數據 int gettop(stack& s) {if (isempty(s)){exit(1);}return s->next->data; } //清空棧的空間 這只是銷毀棧的存儲數據的空間,沒有銷毀棧首的位置 void clearstack(stack& s) {while (!isempty(s)){pop(s);} } //銷毀??臻g void destorystack(stack& s) {while(!isempty(s)){pop(s);}delete s;s = NULL; } void print(bool b) {if (b)cout << "yes" << endl;elsecout << "no" << endl; } int main() {stack s;initialsatck(s);for (int i = 0; i < 10; i++){push(s, i);}cout << getlength(s) << endl;while (!isempty(s)){cout << pop(s) << endl;}cout << getlength(s) << endl;clearstack(s);cout << getlength(s) << endl;destorystack(s);system("pause");return 0; }
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的链栈的建立、判空、入栈、出栈、求长、访顶、清空和销毁的全部內容,希望文章能夠幫你解決所遇到的問題。

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