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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

顺序出栈操作

發布時間:2025/4/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 顺序出栈操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include "stdio.h" #include "stdlib.h"#define OK 1 #define ERROR 0 /* 存儲空間初始分配量 */ #define MAXSIZE 20typedef int Status; /* SElemType類型根據實際情況而定,這里假設為int */ typedef int SElemType;/* 順序棧結構 */ typedef struct {SElemType data[MAXSIZE];int top; /* 用于棧頂指針 */ }SqStack;/* 構造一個空棧S */ Status InitStack(SqStack *S) {/* S.data=(SElemType *)malloc(MAXSIZE*sizeof(SElemType)); */S->top=-1;return OK; }/* 從棧底到棧頂依次對棧中每個元素顯示 */ Status StackTraverse(SqStack S) {int i;i=0;while(i<=S.top){visit(S.data[i++]);}printf("\n");return OK; }Status visit(SElemType c) {printf("%d ",c);return OK; }/* 插入元素e為新的棧頂元素 */ Status Push(SqStack *S,SElemType e) {if(S->top == MAXSIZE -1) /* 棧滿 */{return ERROR;}S->top++; /* 棧頂指針增加一 */S->data[S->top]=e; /* 將新插入元素賦值給棧頂空間 */return OK; }/* 若棧不空,則刪除S的棧頂元素,用e返回其值,并返回OK;否則返回ERROR */ Status Pop(SqStack *S,SElemType *e) {if(S->top==-1)return ERROR;*e=S->data[S->top]; /* 將要刪除的棧頂元素賦值給e */S->top--; /* 棧頂指針減一 */return OK; }int main() {SqStack s;int opp;int j, value, e;if(InitStack(&s)==OK){printf("順序棧初始化成功。");StackTraverse(s);}printf("\n1.隨機給棧賦值 \n2.棧遍歷 \n3.進棧 \n4.出棧");printf("\n0.退出 \n請選擇你的操作:\n");while(opp != '0'){scanf("%d",&opp);switch(opp){case 1:srand(time(0));for(j=1;j<=10;j++){Push(&s,rand()%100+1);}StackTraverse(s);break;case 2:StackTraverse(s);break;case 3:printf("請輸入需要進棧的元素:");scanf("%d", &value);Push(&s, value);StackTraverse(s);break;case 4:Pop(&s,&e);printf("彈出的棧頂元素 e=%d\n",e);StackTraverse(s);break;case 0:exit(0);}} }

總結

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

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