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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

数据结构源码笔记(C语言):链接栈

發布時間:2025/4/16 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构源码笔记(C语言):链接栈 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/* 鏈接棧:類型和界面函數聲明 */ /*鏈接棧:函數實現*/#include <stdio.h> #include <stdlib.h>typedef int DataType;struct Node; /* 單鏈表結點 */ typedef struct Node *PNode; /* 指向結點的指針類型 */ struct Node { /* 單鏈表結點定義 */DataType info;PNode link; };struct LinkStack /* 鏈接棧類型定義 */ {PNode top; /* 指向棧頂結點 */ }; typedef struct LinkStack *PLinkStack; /* 鏈接棧類型的指針類型 *//*創建一空鏈接棧*/ PLinkStack createEmptyStack_link(void) {PLinkStack plstack;plstack = (PLinkStack )malloc( sizeof(struct LinkStack));if (plstack != NULL)plstack->top = NULL;elseprintf("Out of space! \n"); /*創建失敗*/ return (plstack);}/*判斷plstack所指的棧是否為空棧*/ int isEmptyStack_link( PLinkStack plstack ) {return (plstack->top == NULL); }/*進棧運算,往plstack所指的棧中插入(或稱壓入)一個值為x的元素*/ void push_link( PLinkStack plstack, DataType x ) {PNode p;p = (PNode)malloc( sizeof( struct Node ) );if ( p == NULL )printf("Out of space!\n");else{p->info = x;p->link = plstack->top;plstack->top = p;} }/*出棧運算,從plstack所指的棧中刪除(或稱彈出)一個元素*/ void pop_link( PLinkStack plstack ) { PNode p;if( isEmptyStack_link( plstack ) )printf( "Empty stack pop.\n" );else{p = plstack->top;plstack->top = plstack->top->link;free(p);} }/*取棧頂元素的值*/ DataType top_link( PLinkStack plstack ) { if (plstack->top == NULL ) {printf( "Stack is empty!\n" );return -99999;}elsereturn (plstack->top->info); }void displayStack(PLinkStack plstack)//顯示當前棧中的元素 { PLinkStack ps=plstack;printf("當前棧中元素:");while (ps->top!= NULL){printf(" %d",ps->top->info);ps->top=ps->top->link;}printf("\n"); }int main() {PLinkStack plstack;int i;plstack=createEmptyStack_link();printf("判斷是否空棧:");if(isEmptyStack_link(plstack)) printf("是空棧!\n");else printf("非空棧!\n");printf("將數據1、2、3、4推入棧中:\n");for(i=1;i<5;i++)push_link(plstack,i); printf("顯示當前棧頂數據: %d \n",top_link(plstack)); printf("彈出一次棧頂數據:\n");pop_link(plstack);displayStack(plstack);return 0; }

數據結構源碼筆記(C語言描述)匯總:

數據結構源碼筆記(C語言):英文單詞按字典序排序的基數排序

數據結構源碼筆記(C語言):直接插入排序

數據結構源碼筆記(C語言):直接選擇排序

數據結構源碼筆記(C語言):置換-選擇算法

數據結構源碼筆記(C語言):Huffman樹字符編碼

數據結構源碼筆記(C語言):Josephus問題之順序表

數據結構源碼筆記(C語言):Josephus問題之循環鏈接表

數據結構源碼筆記(C語言):多項式合并

數據結構源碼筆記(C語言):二叉樹之葉子結點旋轉銷毀

數據結構源碼筆記(C語言):哈夫曼樹

數據結構源碼筆記(C語言):集合的位向量表示

數據結構源碼筆記(C語言):鏈接隊列

數據結構源碼筆記(C語言):鏈接棧

數據結構源碼筆記(C語言):線性表的單鏈表示

數據結構源碼筆記(C語言):線性表的順序表示

數據結構源碼筆記(C語言):棧的基本操作

數據結構源碼筆記(C語言):中綴表達式

數據結構源碼筆記(C語言):希爾插入排序

數據結構源碼筆記(C語言):索引文件建立和查找

數據結構源碼筆記(C語言):冒泡排序

數據結構源碼筆記(C語言):快速排序

數據結構源碼筆記(C語言):可變長度字符串的快速排序

數據結構源碼筆記(C語言):基數排序

數據結構源碼筆記(C語言):二路歸并排序

數據結構源碼筆記(C語言):堆排序

數據結構源碼筆記(C語言):二叉樹搜索樹Kruskal

數據結構源碼筆記(C語言):二叉搜索樹Prim

數據結構源碼筆記(C語言):最短路徑弗洛伊德算法

數據結構源碼筆記(C語言):深度、廣度優先生成樹

數據結構源碼筆記(C語言):鄰接矩陣轉化鄰接表

數據結構源碼筆記(C語言):統計字符串中出現的字符及其次數

數據結構源碼筆記(C語言):順序查找

數據結構源碼筆記(C語言):哈希表的相關運算算法

數據結構源碼筆記(C語言):分塊法查找

數據結構源碼筆記(C語言):二分查找

數據結構源碼筆記(C語言):二叉樹遍歷

數據結構源碼筆記(C語言):二叉平衡樹的相關操作算法

數據結構源碼筆記(C語言):二叉排序樹的基本操作算法

數據結構源碼筆記(C語言):B樹的相關運算算法

總結

以上是生活随笔為你收集整理的数据结构源码笔记(C语言):链接栈的全部內容,希望文章能夠幫你解決所遇到的問題。

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