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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

纯C语言实现链栈

發(fā)布時(shí)間:2023/12/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 纯C语言实现链栈 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include <stdio.h> #include <stdlib.h>typedef int ElemType;typedef struct StackNode{ElemType data;struct StackNode *next; }StackNode;StackNode *InitStack(StackNode *S);//初始化 StackNode * DestroyStack(StackNode*S);//銷毀 void ClearStack(StackNode*S);//清空 int StackEmpty(StackNode*S);//判空 int StackLength(StackNode*S);//棧長度 ElemType GetTop(StackNode*S);//獲取棧頂元素,不修改指針位置 StackNode *Push(StackNode*S, ElemType e);//插入棧頂 StackNode *Pop(StackNode *S, ElemType *e);//刪除棧頂 void StackTraverse(StackNode *S);//從棧頂依次遍歷//初始化 StackNode *InitStack(StackNode *S){S = NULL;printf("初始化成功\n");return S; }//銷毀,返回空指針給S StackNode *DestroyStack(StackNode*S){StackNode *p = S->next;while(p){free(S);S = p;p = p->next;}printf("銷毀成功\n");return NULL; }//清空 void ClearStack(StackNode*S){printf("清空\n");StackNode *p = S;while(p!=NULL){p->data = 0;p = p->next;}printf("清空成功\n"); }//判空 int StackEmpty(StackNode*S);//棧長度 int StackLength(StackNode*S){int len = 0;StackNode *p = S;while(p!=NULL){len++;p = p->next;}return len; }//獲取棧頂元素,不修改指針位置 ElemType GetTop(StackNode*S){if(S!=NULL){printf("棧頂元素為%d", S->data);return S->data;}else{printf("空鏈棧無棧頂元素\n");return NULL;} }//插入棧頂,返回指針指向當(dāng)前棧頂 StackNode *Push(StackNode*S, ElemType e){StackNode *p = NULL;p = (StackNode *)malloc(sizeof(StackNode));p->data = e;p->next = S;S = p;printf("%d入棧成功\n", e);return S; }//刪除棧頂,返回指針指向當(dāng)前棧頂 StackNode *Pop(StackNode *S, ElemType *e){StackNode *p = NULL;//用于暫存刪除元素if(S == NULL){printf("空鏈棧,刪除失敗\n");return NULL;}*e = S->data;p = S;S = S->next;free(p);printf("%d出棧成功\n",*e);return S; }//從棧頂依次遍歷 void StackTraverse(StackNode *S){StackNode *p = S;if(p == NULL){printf("空鏈棧\n");return;}while(p != NULL){printf("%d ", p->data);p = p->next;}printf("\n"); }int main(void){StackNode *S;ElemType e;//初始化測試S = InitStack(S);// //獲取棧頂元素測試 // GetTop(S); // S = Push(S, 999); // GetTop(S);//入棧測試S = Push(S, 1);S = Push(S, 3);S = Push(S, 2);S = Push(S, 4);S = Push(S, 7);//棧長測試printf("棧長%d\n",StackLength(S));//遍歷測試 StackTraverse(S);// //出棧測試 // S = Pop(S, &e); // S = Pop(S, &e); // S = Pop(S, &e); // //printf("測試e是否改變: %d\n",e); // S = Pop(S, &e); // StackTraverse(S);// //清空測試 // ClearStack(S); // StackTraverse(S);//// //銷毀測試 // S = DestroyStack(S); // StackTraverse(S);return 0; }

?

轉(zhuǎn)載于:https://www.cnblogs.com/powerzzjcode/p/10889112.html

總結(jié)

以上是生活随笔為你收集整理的纯C语言实现链栈的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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