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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

大话数据结构 06:栈 顺序存储结构

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

基礎內容


棧的基礎操作:

順序棧代碼

#include "stdio.h" #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define MAXSIZE 20 /* 存儲空間初始分配量 */typedef int Status; typedef int SElemType; /* SElemType類型根據實際情況而定,這里假設為int *///順序棧結構 typedef struct {SElemType data[MAXSIZE];int top; }SqStack;Status visit(SElemType c) {printf("%d", c);return OK; }// 構造一個空棧 Status InitStack(SqStack* S) {S->top = -1;return OK; }//把S置為空棧 Status ClearStack(SqStack* S) {S->top = -1;return OK; }//判斷是否為空棧 const Status StackEmpty(SqStack* S) {if (S->top == -1)return TRUE;else{return FALSE;} }//返回棧中元素的個數 int StackLength(SqStack S) {return (S.top + 1); }// 返回棧頂的元素 const Status GetTop(SqStack* S, SElemType* e) {if (S->top == -1)return ERROR;else{*e = S->data[S->top];}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; /* 將新插入元素賦值給棧頂空間 */ }// 刪除棧頂元素 Status Pop(SqStack* S, SElemType* e) {if (S->top == -1)return ERROR;else{*e = S->data[S->top];S->top--;return OK;} }//從棧頂依次顯示每個元素 const Status StackTraverse(SqStack *S) {int i;i = 0;while (i <= S->top){visit(S->data[i]);i++;}printf("\n");return OK; }int main() {int j;SqStack s;int e;if (InitStack(&s) == OK)for (j = 1; j <= 10; j++)Push(&s, j);printf("棧中元素依次為:");StackTraverse(&s);Pop(&s, &e);printf("彈出的棧頂元素 e=%d\n", e);printf("棧空否:%d(1:空 0:否)\n", StackEmpty(&s));GetTop(&s, &e);printf("棧頂元素 e=%d 棧的長度為%d\n", e, StackLength(s));ClearStack(&s);printf("清空棧后,棧空否:%d(1:空 0:否)\n", StackEmpty(&s));return 0;}

總結

以上是生活随笔為你收集整理的大话数据结构 06:栈 顺序存储结构的全部內容,希望文章能夠幫你解決所遇到的問題。

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