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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

数据结构严蔚敏 栈基本操作 C语言实现

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

【數據結構嚴蔚敏】 第三章 棧基本操作C語言實現

注意部分:

1.*S.top++ = e;= *S=e ; S.top++ ;
若要實現指針所指地址的元素值++,語句應該是(*a)++而不是*a++
2.關于指針
普通變量如 int a,&a表示變量a所在地址,a表示a所在地址中存儲的值
指針變量如 int * a ,a表示a中存儲的一個int型變量的地址,*a表示在a存儲的地址中存儲的值 ,&a依然表示該指針所在地址(不是a中存儲的地址),。
2.關于free的問題
free與malloc語句對應,作用于指針,malloc為指針分配專用內存空間,使用free語句后,該內存空間不再為指針專有,它可能會被再次利用,但是指針所指仍然是這個地址,依然能夠進行操作,所以在free后需要對指針置為NULL,防止誤操作指針出現意外情況。
free(p);p=NULL;配合使用

代碼部分

vs2017

stack.h部分

#include<stdio.h> #include<stdlib.h> #include<iostream> using namespace std; #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASLBLE -1 #define STACK_INIT_SIZE 100 //存儲空間初始分配量 #define STACKINCREMENT 10 //存儲空間分配增量typedef int Status; typedef int SElemType;typedef struct{SElemType * base;SElemType * top;int stacksize; }SqStack;//構造一個空棧 Status InitStack(SqStack &S);//銷毀一個棧 Status DestroyStack(SqStack &S);//清空一個棧 Status ClearStack(SqStack &S);//若棧為空棧,則返回TRUE,否則返回FALSE Status StackEmpty(SqStack &S);//返回S的元素個數,即棧的長度 int StackLength(SqStack S);//若棧不空,用e返回S的棧頂元素,并返回OK;否則返回ERROR Status GeTop(SqStack S, SElemType &e);//插入元素e為新的棧頂元素 Status Push(SqStack &S, SElemType &e);//若棧不空,刪除S的棧頂元素,用e返回其值,并返回OK;否則返回ERROR Status Pop(SqStack &S, SElemType e);//從棧底到棧頂依次對棧中每個元素調用函數visit()。一旦visit失敗,操作失敗 Status StackTraverse(SqStack S, Status(*visit)(SElemType*));

stack.c部分

#include "stack.h"Status InitStack(SqStack & S) {S.base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));if (!S.base) exit(OVERFLOW);S.top = S.base;S.stacksize = STACK_INIT_SIZE;return OK; }Status DestroyStack(SqStack & S) {free(S.base);S.base = NULL; //free后需要將指針賦NULL,否則可能造成問題S.stacksize = 0;return OK; }Status ClearStack(SqStack & S) {S.top = S.base;return OK; }Status StackEmpty(SqStack & S) {if (S.base == S.top)return TRUE;return FALSE; }int StackLength(SqStack S) {return S.top-S.base; }Status GeTop(SqStack S, SElemType & e) { if (S.top == S.base) return ERROR;e = *(S.top - 1);return OK;}Status Push(SqStack & S, SElemType e) {if (S.top - S.base >= S.stacksize) {S.base = (SElemType *)realloc(S.base, (S.stacksize + STACKINCREMENT) * sizeof(SElemType));if (!S.base)exit(OVERFLOW);S.top = S.base + S.stacksize;S.stacksize += STACKINCREMENT;}*S.top++ = e;return OK;}Status Pop(SqStack & S, SElemType &e) {if (S.base == S.top)return ERROR;e = *--S.top;return OK; }Status StackTraverse(SqStack S, Status(*visit)(SElemType*)) {SElemType *cur;cur = S.base;while (!(cur == S.top)) {if (!visit(cur)) return ERROR; cur++;}return OK; }

test部分

#include<stdio.h> #include<stdlib.h> #include<iostream> #include"stack.h"int visit(SElemType* cur) {//顯示元素值cout << *cur;return OK; } int main() {SqStack S;int e=0;InitStack(S); //初始化鏈表for (int i = 0; i < 5; i++) { //圧入五個元素Push(S, i);}StackTraverse(S, visit); //遍歷棧,visit定義為輸出函數。cout <<endl<< "刪除棧頂元素" << endl;Pop(S, e); //刪除棧頂元素StackTraverse(S, visit);cout << endl << "輸出棧的元素個數" << endl;cout << StackLength(S)<<endl; //輸出棧的元素個數cout << "清空棧" << endl;ClearStack(S);cout << "判斷棧是否為空,1為空" << endl;cout << StackEmpty(S)<<endl;system("pause");return 0; }

輸出結果

總結

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

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

主站蜘蛛池模板: 嫩草视频91 | 国产欧美视频一区 | 日本h视频在线观看 | 欧美成人短视频 | 丝袜诱惑一区二区 | 成人性生生活性生交全黄 | 激情午夜天 | 欧美在线色视频 | 中文字幕乱码视频 | 亚洲精品视频网 | 日韩经典第一页 | 国产精品无码AV无码国产 | 曰批又黄又爽免费视频 | 成人一级网站 | 亚洲天堂岛 | 免费成人在线网站 | 久久91 | 特黄一级大片 | 日韩熟妇一区二区三区 | 日韩精品在线观看网站 | 毛片a| 乱短篇艳辣500篇h文最新章节 | 亚洲精品乱码久久久久99 | 少妇高潮一区二区三区 | 亚洲在线免费观看 | 黄色视屏网站 | 孕妇疯狂做爰xxxⅹ 国产精品乱码久久久久久 99久久久成人国产精品 | sese视频在线观看 | 国产亚洲精品成人av久久ww | 最近中文字幕在线中文视频 | 在线爱情大片免费观看大全 | 国产丝袜在线视频 | 日韩全黄| 亚洲午夜福利在线观看 | 久草热播 | 女人性做爰69片免费看 | 欧美日韩美女 | 日本一区二区视频 | 美女啪啪无遮挡 | 亚洲国产v | 日本免费黄网站 | 日韩免费av | www.亚洲视频| 日韩乱码人妻无码系列中文字幕 | 四川黄色一级片 | 精品一区二区久久久久久久网站 | 国产亚洲无| 日韩一区二区三区在线 | 国产精品av久久久久久无 | 亚洲涩情 | 久久777 | 亚洲视频在线看 | 91精品人妻一区二区三区果冻 | 黑料福利 | 伊人久久中文 | 麻豆日产六区 | 影音先锋在线视频 | 久久久性视频 | 少妇高潮淫片免费观看 | 中文字幕乱码人妻一区二区三区 | 三级av免费| 亚洲在线成人 | 婷婷六月在线 | 欧美性猛交乱大交 | 国产伦精品一区二区三区视频我 | 欧美少妇一级片 | 午夜丰满寂寞少妇精品 | 国产日韩在线视频 | 91美女免费看| 亚洲av无一区二区三区怡春院 | 好大好爽好舒服 | 中文字幕――色哟哟 | 男人天堂一区 | 麻豆免费在线观看视频 | 久久青青草原亚洲av无码麻豆 | 国产精品蜜臀av | 欧美射射射 | 久草视频在线资源 | 中文字幕+乱码+中文字幕一区 | 一区二区国产欧美 | 深夜激情网 | 一区二区在线视频播放 | 成人国产片女人爽到高潮 | 91禁看片| 亚洲免费片 | 无码av免费精品一区二区三区 | 国产午夜精品一区二区 | 久久久久18 | 日本在线一本 | 国产九九精品视频 | 一级黄毛片 | 超级砰砰砰97免费观看最新一期 | 国产精品九一 | 亚洲综合五月天婷婷丁香 | 三上悠亚一区二区三区 | 国产影视一区 | 午夜激情啪啪 | 老司机免费在线视频 | 99色亚洲|