亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

棧與隊列(一)進出棧(含二轉十進制棧應用)

2019-11-14 09:54:05
字體:
來源:轉載
供稿:網友

一、棧相關定義(棧的順序存儲結構(最常用))

官方定義:棧是一個后進先出的線性表,它要求只在表尾進行刪除插入操作(特殊線性表,只能在表尾操作)

棧頂:表尾棧底:表頭棧的插入操作:叫做進棧(入棧,壓棧),類似子彈放入彈夾的動作棧的刪除操作:叫做出棧(彈棧),如同子彈出夾

空棧:棧中不含任何數據,此時棧頂就是棧底,然后數據從棧頂進入,頂底分離,棧容量變大。數據出棧時從棧頂彈出,棧頂下移,棧容量減小

二、(一幅圖理解棧頂指針和棧底指針分別指向的位置(當然這個指向只是我這里使用的方法))

typedef struct{  ElemType *base; //棧底指針  ElemType *top;  //棧頂指針  int maxsize;  //當前可使用最大容量}sqStack;

三、創建一個棧

#define stacksize 100 //初始化棧是100個空間initStack(sqStack *s){  s->base=(ElemType *)malloc(stacksize * sizeof(ElemType));//申請空間  if(!s->base) //看是否申請成功     exit(0);  s->top=s->base; //最開始棧頂就是棧底  s->maxsize=stacksize;//可用空間100}

四、入棧操作(向棧中存放數據)(在棧頂進行,每次向棧中壓入一個數據,top指針+1,直到棧滿)

void Push(sqStack *s,ElemType e){  if(s->top-s->base>=s->maxsize){//判斷是否棧大小大于最大容量      return;  }  *(s->top)=e;//放入數據  s->top++; //棧頂容量增加}

五、出棧操作(棧頂取出數據,棧頂指針下移,容量減1)

void Pop(sqStack *s,ElemType *e){  if(s->top==s->base){//棧已空了    return;  }  *e=*--(s->top); //先將指針s->top減1(位置的變化)后再取出具體數據內容,再賦值給e。。。因為top指針指的位置是棧頂(可以想象本來棧頂和棧底指向同一位置,然后一個元素進入頂底分離,棧頂指向的位置是沒有元素的,因為最后一步總要s->top++,所以這里要取最后一個元素,首先得讓棧頂top指向這個元素,所以向前移動以為即--)}

五、清空一個棧(就是將元素全部報廢,不是銷毀)(只要將s->top的內容賦值為s->base即可s->top等于s->base就表明??樟耍?/p>

ClearStack(sqStack *s)(這個操作其實里面數據還是存在,只是我們看不到了,因為我們改變了指針的指向){  s->top=s->base;}

六、銷毀一個棧

DestroyStack(sqStack *s){  int i,len;  len=s->maxsize;//先得到這個棧的容量  for(i=0;i<len;i++){ //迭代一個一個釋放掉內存,free用到stdlib.h頭文件   free(s->base);   s->base++;  }  s->base=s->top=NULL;  s->maxsize=0;}七、計算棧的當前容量(就是計算棧中元素的個數,因此只要返回s.top-s.base即可)(注意:S.top-s.base(不是指針指針是->)兩個地址相減就是中間元素的個數,但不能相加)(注意:棧的最大空間s.maxsize是該棧占據內存空間的大小,與棧的當前容量(當前存放了多少數據)不是一個概念)
int StackLen(sqStack s){  return(s.top-s.base);}

八、實例:二進制轉化為十進制(棧的思想,后進先出)

/*************************************************************************    > File Name: 棧.c    > Author: geeker    > Mail: 932834897@QQ.com    > Created Time: 2017年02月04日 星期六 20時16分15秒 ************************************************************************/#include<stdio.h>#include <stdlib.h>#include "math.h"#define stacksize 20typedef char ElemType;//如果int就會把輸入的數據當成整型,char可以以ASCII存在typedef struct{    ElemType *base;    ElemType *top;    int maxsize;}sqStack;void InitStack(sqStack *s)//初始化{    s->base=(ElemType *)malloc(stacksize * sizeof(ElemType));    if(!s->base)        exit(0);    s->top=s->base;    s->maxsize=stacksize;}void Push(sqStack *s,ElemType e)//壓棧{    if(s->top-s->base>=s->maxsize)        return;    *(s->top)=e;    s->top++;}void Pop(sqStack *s,ElemType *e)//出棧{    if(s->top==s->base)        return;    *e=*--(s->top);}int StackLen(sqStack s)//(看清s不是指針),計算當前容量{    return(s.top-s.base);//點是結構不是指針}int main(){    ElemType c;    sqStack s;    int len,i,sum=0;    InitStack(&s);    PRintf("請輸入二進制數,輸入#符號表示結束!/n");    scanf("%c",&c);    while(c!='#'){//遇見#停止        Push(&s,c);//函數Push中s是指針,所以這里傳地址        scanf("%c",&c);    }    getchar();//把‘/n’從緩沖區去掉    len=StackLen(s);    printf("棧的當前容量是%d/n",len);    for(i=0;i<len;i++){        Pop(&s,&c);//Pop函數中元素形參用指針,所以我們這里c傳地址給Pop        sum+=(c-48)*pow(2,i);    }    printf("轉化為十進制數是:%d/n",sum);    return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久超碰| 97超视频免费观看| 97在线观看视频| 久久97精品久久久久久久不卡| 国产福利精品在线| 欧美理论电影在线播放| 亚洲电影在线看| 亚洲免费av片| 欧美国产日韩一区二区三区| 亚洲视频网站在线观看| 精品香蕉一区二区三区| 欧美日韩亚洲91| 黑人巨大精品欧美一区二区一视频| 欧美日韩国产精品| 日韩av免费一区| 91精品综合久久久久久五月天| 亚洲激情在线观看视频免费| 日韩网站免费观看高清| 日韩免费电影在线观看| 日日摸夜夜添一区| 午夜精品福利在线观看| 亚洲国产成人精品久久| 亚洲护士老师的毛茸茸最新章节| 青青久久av北条麻妃黑人| 国产精品视频自在线| 日韩高清电影好看的电视剧电影| 日本高清不卡的在线| 亚洲国产精品久久久久秋霞不卡| 深夜福利国产精品| 亚洲欧美一区二区精品久久久| www.xxxx精品| 国产精品伦子伦免费视频| 国产精品免费视频xxxx| 欧美午夜激情小视频| 精品国产一区二区三区久久| 亚洲天堂第二页| 精品国产欧美成人夜夜嗨| 97精品国产97久久久久久| 欧美乱人伦中文字幕在线| 欧美大片免费观看在线观看网站推荐| 92看片淫黄大片看国产片| 亚洲最大成人网色| 欧美电影免费播放| 国产日韩精品在线观看| 91嫩草在线视频| 国产视频在线观看一区二区| 亚洲欧美日韩精品久久亚洲区| 91精品在线观| 日韩在线免费高清视频| 中文字幕亚洲综合久久筱田步美| 国产精品1234| 日韩国产欧美精品在线| 国产精品久久一区主播| 午夜精品久久久久久久久久久久| 欧美激情亚洲自拍| 久久久久久久久国产| 精品国产乱码久久久久酒店| 国产91色在线| 亚洲精品日产aⅴ| 成人午夜在线观看| 日韩精品视频中文在线观看| 欧美中文字幕视频在线观看| 中日韩美女免费视频网站在线观看| 亚洲美腿欧美激情另类| 欧美日韩免费区域视频在线观看| 亚洲春色另类小说| 国内精品模特av私拍在线观看| 亚洲国产精品网站| 欧美裸体xxxx极品少妇软件| 亚洲精品自拍偷拍| 欧美疯狂性受xxxxx另类| 精品国产91乱高清在线观看| 久久男人av资源网站| 久久五月天综合| 久久这里有精品视频| 国产精品美女在线观看| 92国产精品视频| 日韩欧美国产视频| 亚洲精品一区二区三区婷婷月| 人人爽久久涩噜噜噜网站| 欧美人交a欧美精品| 米奇精品一区二区三区在线观看| 亚洲欧美变态国产另类| 激情成人中文字幕| 亚洲伊人一本大道中文字幕| 久久综合免费视频影院| 青青草原一区二区| 日韩视频免费在线| 91亚洲精品久久久| 国产一区二区丝袜高跟鞋图片| 亚洲一品av免费观看| 久久在精品线影院精品国产| 亚洲bt天天射| 中文字幕成人在线| 51ⅴ精品国产91久久久久久| 国产成人一区三区| 欧美另类69精品久久久久9999| 日韩一二三在线视频播| 亚洲国产精品yw在线观看| 欧美激情在线观看| 欧美日韩国产激情| 欧美一区二区三区四区在线| 色与欲影视天天看综合网| 日韩电影中文字幕一区| 亚州国产精品久久久| 在线成人激情黄色| 亚洲高清免费观看高清完整版| 日韩欧美一区二区在线| 国产精品99导航| 日韩中文在线中文网在线观看| 日韩亚洲精品电影| 日韩免费观看高清| 欧美日本中文字幕| 国产精品成人av在线| 欧美日韩国产一中文字不卡| 国产精品偷伦一区二区| 国产精国产精品| 国产精品久久久久久久美男| 亚洲国产日韩欧美在线99| 成人精品网站在线观看| 日日狠狠久久偷偷四色综合免费| 久久综合免费视频影院| 91国在线精品国内播放| 欧美精品在线网站| 好吊成人免视频| 国产精品高精视频免费| 成人性生交xxxxx网站| 91免费综合在线| 懂色aⅴ精品一区二区三区蜜月| 91精品国产自产在线老师啪| 亚洲天天在线日亚洲洲精| 庆余年2免费日韩剧观看大牛| 国产精品va在线播放我和闺蜜| 国产精品露脸自拍| 91色视频在线导航| 欧美中文在线观看国产| 亚洲精品网站在线播放gif| 亚洲成人激情视频| 亚洲精品久久久久国产| 欧美日韩免费一区| 日本在线精品视频| 日韩最新中文字幕电影免费看| 欧美专区在线视频| 日本a级片电影一区二区| 综合国产在线观看| 黄色91在线观看| 国产精品美女久久久久久免费| 亚洲小视频在线| 中文字幕亚洲一区二区三区| 国产精品一二区| 亚洲电影中文字幕| 国产精品免费小视频| 精品女同一区二区三区在线播放| 久久精品91久久香蕉加勒比| 国产精品第3页| 欧美中文字幕在线视频| 日韩精品免费综合视频在线播放| 中文字幕在线国产精品| 久久天天躁狠狠躁夜夜av| 日韩av在线影院| 中日韩美女免费视频网站在线观看| 中文字幕一区电影| 欧美性猛交xxxx乱大交3| 97视频免费观看|