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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构学习:栈

發(fā)布時(shí)間:2024/4/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构学习:栈 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

棧是一種后進(jìn)先出(Last in First Out)的數(shù)據(jù)結(jié)構(gòu)。
由于棧比較好理解,這里只附上用c實(shí)現(xiàn)棧的代碼。

棧的鏈?zhǔn)絻Υ?/strong>

#include <stdio.h> #include <stdlib.h>#define SUCCEED 1 #define FAIL 0 #define TestNum 5typedef int SElemType; typedef int Status;//棧的結(jié)點(diǎn)結(jié)構(gòu)體 typedef struct StackNode {SElemType data;struct StackNode *next; }StackNode,*LinkStackPtr;//棧的結(jié)構(gòu)體 typedef struct LinkStack{LinkStackPtr top;int count; }LinkStack;Status Push(LinkStack *S,SElemType data){LinkStackPtr s = (LinkStackPtr)malloc(sizeof(StackNode));s->data = data;s->next = S->top;S->top = s;S->count++;return SUCCEED; }Status Pop(LinkStack *S,SElemType *e){LinkStackPtr tmp;if(S->count == 0) return FAIL;*e = S->top->data;tmp = S->top;S->top = S->top->next;S->count--;free(tmp);return SUCCEED; }int main(){int i;LinkStack test;SElemType data[]={1,2,3,4,5};SElemType topData;printf("Push test\n");for(i = 0 ; i < TestNum ; i++){Push(&test, data[i]);}printf("The Count of this Stack is %d\n",test.count);printf("Pop test\n");for(i = 0 ; i < TestNum ; i++){Pop(&test,&topData);printf("The top Data is %d\n",topData);printf("There are %d remain in Stack\n",test.count);}return 0; }

棧的順序儲存

#include <stdio.h> #include <stdlib.h>#define SUCCEED 1 #define FAIL 0 #define TestNum 5 #define StackMax 1000 //該棧的最大sizetypedef int SElemType; typedef int Status;//棧的結(jié)點(diǎn)結(jié)構(gòu)體 typedef struct StackNode {SElemType data; }StackNode;//棧的結(jié)構(gòu)體 typedef struct LinkStack{StackNode *Stack;int top; //用來保存棧頂?shù)南禂?shù)int count; //用來保存棧的大小 }LinkStack;Status Push(LinkStack *S,SElemType data){StackNode *stack;stack = S->Stack;S->top++; //更新頭結(jié)點(diǎn)的位置stack[S->top].data = data;S->count ++;return SUCCEED; }Status Pop(LinkStack *S,SElemType *e){if(S->count == 0) return FAIL;*e = S->Stack[S->top].data; //利用e傳回棧頂?shù)臄?shù)據(jù)S->top--;S->count--;return SUCCEED; }//初始化棧 Status initStack(LinkStack *S){S->Stack = (StackNode*)malloc(sizeof(StackNode)*StackMax);S->top = -1;S->count = 0;return SUCCEED; }int main(){int i;LinkStack test;SElemType data[]={1,2,3,4,5};SElemType topData;initStack(&test); //初始化棧printf("Push test\n");for(i = 0 ; i < TestNum ; i++){Push(&test, data[i]);}printf("The Count of this Stack is %d\n",test.count);printf("Pop test\n");for(i = 0 ; i < TestNum ; i++){Pop(&test,&topData);printf("The top Data is %d\n",topData);printf("There are %d remain in Stack\n",test.count);}return 0; }

聊聊個(gè)人對C語言中串行計(jì)算,函數(shù)調(diào)用,與棧之間的初步理解。

當(dāng)調(diào)用函數(shù)時(shí),被調(diào)用函數(shù)的參數(shù)和返回值被儲存當(dāng)前程序的棧區(qū),之后被調(diào)用函數(shù)再為自身的自動(dòng)變量和臨時(shí)變量在棧區(qū)上分配空間。當(dāng)函數(shù)調(diào)用返回時(shí),在棧區(qū)內(nèi)的參數(shù)返回值、自動(dòng)變量和臨時(shí)變量等都會(huì)被釋放。

單線程在程序執(zhí)行時(shí),所走的程序路徑按照連續(xù)順序排下來,前面的必須處理好,后面的才會(huì)執(zhí)行。C語言程序在運(yùn)行是就是單線程串行計(jì)算。當(dāng)遇到調(diào)用其他函數(shù)的時(shí)候,就會(huì)把當(dāng)前的當(dāng)前的參數(shù)傳出去,運(yùn)行的位置當(dāng)前參數(shù)保存在棧頂,并開辟新的棧區(qū)(我是這么理解的)。調(diào)用的函數(shù)運(yùn)行完畢,就返回之前的函數(shù),并接著運(yùn)行下去。
當(dāng)遇到調(diào)用自己的情況(遞歸),就會(huì)將運(yùn)行的位置和當(dāng)前參數(shù)push進(jìn)去,傳參,當(dāng)遞歸結(jié)束后一層層pop直到棧底。當(dāng)遞歸次數(shù)過多就會(huì)overflow。

轉(zhuǎn)載于:https://www.cnblogs.com/he11o-liu/p/7503263.html

總結(jié)

以上是生活随笔為你收集整理的数据结构学习:栈的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久爱视频在线观看 | 亚洲成人免费在线视频 | 亚洲 小说 欧美 激情 另类 | 美日韩免费视频 | 777国产成人入口 | 亚洲网站视频 | 国产高清视频在线 | 日本一区二区三区视频在线观看 | 欧美一级黑人 | 国产无遮挡又黄又爽免费网站 | 中文字幕第一区综合 | 天堂在线视频免费观看 | 日本最新中文字幕 | 蜜桃视频成人在线观看 | 亚洲九九爱| 国产亚洲视频一区 | 雪花飘电影在线观看免费高清 | 夜夜骑夜夜 | 熟女少妇精品一区二区 | 麻豆偷拍 | 亚洲激情成人网 | 麻豆私人影院 | 性——交——性——乱免费的 | 免费成人美女女 | 免费看污视频的网站 | 欧美日韩在线高清 | 超污视频在线观看 | 亚洲成人精品一区二区三区 | a国产在线| 亚洲欧美一区二区精品久久久 | 天天色天天干天天色 | 最新日韩av| 99er在线 | 亚洲视频国产视频 | 涩涩视频在线 | 筱田优全部av免费观看 | 38在线视频| av网址网站 | 国产精品美女久久久久av超清 | 足交在线观看 | av制服丝袜在线 | 亚洲人成亚洲人成在线观看 | 97狠狠干| av激情网站 | 久综合 | 黄色片网站国产 | 在线欧美一区二区 | 成人欧美一区二区三区黑人 | 久久亚洲精品无码va白人极品 | 免费av毛片 | 91精品影视 | 国产精品久久午夜夜伦鲁鲁 | 少妇精品高潮欲妇又嫩中文字幕 | 亚洲精品 欧美 | 久久精品视频播放 | 欧美极品在线视频 | 国产精品免费看片 | av影院在线观看 | 日韩字幕在线 | 国产黄色小说 | se日韩 | 什么网站可以看毛片 | 日韩电影在线观看一区二区 | 日韩在线观看视频一区二区三区 | 中文字幕日韩一区二区三区不卡 | 天天干视频在线 | 最新中文字幕在线视频 | 成人在线播放视频 | 公侵犯一区二区三区 | 中文字幕人成人乱码亚洲电影 | 麻豆蜜臀| 久久久久久人妻一区二区三区 | 男生舔女生的屁股 | 少妇呻吟视频 | 国产一区视频在线播放 | 人妖黄色片 | 96久久 | 小小姑娘电影大全免费播放 | 日韩大片免费观看视频播放 | 久久久久亚洲av无码麻豆 | 一区二区啪啪啪 | 国产一级在线视频 | 精品人妻码一区二区三区红楼视频 | 色哟哟在线播放 | av夜夜| 天天撸天天射 | 久热这里只有精品在线 | 永久免费成人代码 | 久久精品23 | 99re伊人| 欧美成人黄色片 | 成年人在线视频观看 | 国产成人小视频 | 欧美综合专区 | 先锋资源在线视频 | 日韩a在线播放 | 久久911 | 小俊大肉大捧一进一出好爽 | 欧美激情精品久久久久 |