国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

棧之鏈?zhǔn)酱鎯?chǔ)基本操作

2019-11-14 09:27:59
字體:
供稿:網(wǎng)友
#include <stdio.h>#include <stdlib.h>//棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)typedef char ElemType;typedef struct linknode{    ElemType data;//數(shù)據(jù)域    struct linknode *next;//指針域}LiStack;//初始化棧void InitStack(LiStack *&s){    s=(LiStack *)malloc(sizeof(LiStack));    s->next=NULL;}//銷毀棧void DestroyStack(LiStack *&s){    LiStack *p=s,*q=s->next;    while(q!=NULL)    {        free(p);        p=q;        q=p->next;    }    free(p);}//判斷棧是夠?yàn)榭誦ool StackEmpty(LiStack *s){    return (s->next==NULL);}//進(jìn)棧void Push(LiStack *&s,ElemType e){    LiStack *p=s;    p=(LiStack *)malloc(sizeof(LiStack));//新建元素p    p->data=e;    /************************/    p->next=s->next;    s->next=p;    /************************/}//出棧bool Pop(LiStack *&s,ElemType &e){    LiStack *p;    if(s->next==NULL)        return false;    p=s->next;    e=p->data;    /************************/    s->next=p->next;    free(p);    /************************/}//取棧頂元素bool GetTop(LiStack *s,ElemType &e){    LiStack *p;    if(s->next==NULL)        return false;    p=s->next;    e=p->data;    return true;}int main(){	ElemType e;	LiStack *s;	PRintf("棧s的基本運(yùn)算如下:/n");	printf("  (1)初始化棧s/n");	InitStack(s);	printf("  (2)棧為%s/n",(StackEmpty(s)?"空":"非空"));	printf("  (3)依次進(jìn)棧元素a,b,c,d,e/n");	Push(s,'a');	Push(s,'b');	Push(s,'c');	Push(s,'d');	Push(s,'e');	printf("  (4)棧為%s/n",(StackEmpty(s)?"空":"非空"));	printf("  (5)出棧序列:");	while (!StackEmpty(s))	{		Pop(s,e);		printf("%c ",e);	}	printf("/n");	printf("  (6)棧為%s/n",(StackEmpty(s)?"空":"非空"));	printf("  (7)釋放棧/n");	DestroyStack(s);    return 0;}

運(yùn)行結(jié)果:

心得:

棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是沒有到棧頂?shù)那闆r的,可以無限長。其實(shí)無論進(jìn)棧出棧還是刪除棧元素,用到的操作都是單鏈表的基本操作,進(jìn)棧就是頭插法,出棧就是刪除第一個(gè)元素。另外出棧和去棧頂元素時(shí)要注意判斷棧空的情況。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴国县| 桐庐县| 布尔津县| 吉林市| 来安县| 宁德市| 富裕县| 中超| 灯塔市| 定西市| 青田县| 安顺市| 外汇| 镇宁| 永昌县| 汉沽区| 墨玉县| 小金县| 临武县| 淳安县| 达州市| 建平县| 嫩江县| 佛冈县| 麦盖提县| 乌审旗| 天长市| 定襄县| 金寨县| 花垣县| 遂昌县| 古浪县| 华安县| 辽阳县| 昌都县| 谷城县| 平安县| 翁牛特旗| 阳朔县| 陆河县| 安康市|