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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

栈链式结构简单操作

發布時間:2024/3/13 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 栈链式结构简单操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關于棧的鏈式存儲結構,下面用的是單鏈表頭插法創建棧,因為頭插法的特點是在頭結點(frist)與NULL空結點(first ->next)之間插入各結點,存儲數據的入棧順序和出棧順序是相反的,和棧的
特點很相似,工作指針如top指針一樣,始終指向棧頂(第一個結點)。下代碼如有不當之處,請指正!

點擊(此處)折疊或打開

  • #include<iostream>
  • //#include<stdlib.h>
  • using namespace std;
  • struct Stack {

  • ????int data;
  • ????struct Stack *next;
  • };

  • Stack *CreatStack() {

  • ????Stack *p;
  • ????p = new Stack; //p = (Stack *)malloc(sizeof(Stack));
  • ????p->data = NULL; ?//頭結點不存放數據域
  • ????p->next = NULL; //棧底
  • ????return p;
  • }

  • Stack *PushStack(Stack *p) {

  • ????Stack *q;

  • ????cout << "進棧順序:" << endl;
  • ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //下面用頭插法構建鏈式棧,和單鏈表的頭插法沒有區別
  • ????for (int i = 0; i < 9; i++) {

  • ????????q = new Stack; ??
  • ????????q->data = i;
  • ????????cout << q->data << "-->";
  • ????????q->next = p->next;
  • ????????p->next = q;
  • ????}
  • ????cout << "進棧結束" << endl;
  • ????return p;
  • }

  • void PrintStack(Stack *p) { ?//出棧

  • ????cout << "出棧順序:" << endl;

  • ????p = p->next;

  • ????for (p->next; p != NULL; p = p->next) {

  • ????????cout << p->data << "-->";
  • ????}
  • ????cout << "出棧結束" << endl;
  • }

  • void InsertStack(Stack *first,int x) { ? ?//在棧頂插入結點


  • ????Stack *p;
  • ????p = new Stack;
  • ????p->data = x;
  • ????p->next = first->next;
  • ????first->next = p;

  • }

  • void DestoryStack(Stack *first) { ?//銷毀棧

  • ???? do{

  • ????????Stack *p;
  • ????????p = first;
  • ????????first = first->next;
  • ????????delete p; ?//該步一定要在上面步驟之后
  • ? ? ? ? p = NULL; ?//避免出現迷途指針
  • ????????

  • ???? } while (first != NULL);

  • ????cout << "鏈棧已銷毀" << endl;
  • }

  • int main() {

  • ????Stack *p,*s;
  • ????p = CreatStack();
  • ????s = PushStack(p);
  • ????//InsertStack(s, 11);
  • ????DestoryStack(s);
  • ????//PrintStack(s);
  • }

  • 來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/29876893/viewspace-1814930/,如需轉載,請注明出處,否則將追究法律責任。

    轉載于:http://blog.itpub.net/29876893/viewspace-1814930/

    總結

    以上是生活随笔為你收集整理的栈链式结构简单操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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