生活随笔
收集整理的這篇文章主要介紹了
数据结构源码笔记(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
);}
int isEmptyStack_link( PLinkStack plstack
)
{return (plstack
->top
== NULL);
}
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
;}
}
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语言):链接栈的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。