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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【数据结构】栈的基本操作

發布時間:2023/12/9 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【数据结构】栈的基本操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、初始化棧
  • 二、銷毀棧
  • 三、判斷棧是否為空
  • 四、進棧
  • 五、出棧
  • 六、取棧頂元素
  • 總結


前言

棧的基本操作有1.初始化棧2.銷毀棧3.判斷棧是否為空4.進棧5.出棧6.取棧頂元素


首先定義好棧的數據類型

typedef int ElemType; typedef struct { ElemType data[MaxSize]; int
top; }SqStack;

一、初始化棧

void InitStack(SqStack*& s) {s = (SqStack*)malloc(sizeof(SqStack));s->top = -1; }

二、銷毀棧

//銷毀棧 void DestoryStack(SqStack*& s) {free(s); }

三、判斷棧是否為空

bool StackEmpty(SqStack* s) {return (s->top == -1); }

四、進棧

//元素進棧 bool push(SqStack*& s, ElemType e) {if (s->top == MaxSize - 1) {//此時,top指針已經指向最高處了return false;}else {s->top++;s->data[s->top] = e;return true;} }

五、出棧

//元素出棧 bool pop(SqStack*& s, ElemType e) {if (s->top == -1) {return false;}else {e = s->data[s->top];s->top--;return true;} }

六、取棧頂元素

//取棧頂元素 bool GetTop(SqStack* s, ElemType &e) {if (s->top == -1) {return false;}else {e = s->data[s->top];return true;} }//這里可以觀察到,取棧頂元素與出棧是非常相似的,但棧頂元素不需要top--。```

總結

棧的基本操作需要自己不斷的去敲代碼熟悉,逐漸理解代碼中的思維方式

總結

以上是生活随笔為你收集整理的【数据结构】栈的基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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