国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 扬州市| 沈丘县| 桐梓县| 民乐县| 梓潼县| 聊城市| 油尖旺区| 临邑县| 安吉县| 偏关县| 金阳县| 荆门市| 黄山市| 通州区| 吉安县| 克拉玛依市| 保山市| 永德县| 安阳县| 中江县| 桓台县| 铜山县| 宁武县| 石渠县| 手机| 远安县| 萍乡市| 高雄县| 唐河县| 拜泉县| 大英县| 平罗县| 山阴县| 马龙县| 凌海市| 新乐市| 耒阳市| 祁连县| 和田县| 文山县| 西乌珠穆沁旗|