91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

棧的鏈式存儲及基本操作

發布時間:2020-07-14 07:02:19 來源:網絡 閱讀:1336 作者:dreamhorse 欄目:編程語言

棧的鏈式存儲結構稱為鏈棧,它是運算受限的單鏈表,其插入和刪除操作僅限制在棧頂進行。

先將練習結果貼下

棧的鏈式存儲及基本操作

相關C代碼如下:

/*數據結構之棧*/
#include?<stdio.h>
#include?<malloc.h>
#include?<stdlib.h>

typedef?int?DataType;
/*定義棧的結構體類型*/
typedef?struct?NODE{
	DataType?data;
	NODE?*?pNext;
}Node,*?PNode;

typedef?struct?STACK{
	PNode?pTop;
	PNode?pBot;
}Stack,*?PStack;

void??InitStack(PStack);??//初始化棧
bool?isEmpty(PStack);??//判斷棧是否為空
void?Push(PStack,DataType?val);??//進棧函數
bool?Pop(PStack,DataType?*x);??//出棧操作
DataType?GetTop(PStack);??//取棧頂元素
void?show_Stack(PStack);??//列出棧的內容

void?main(){
	
	Stack?S;
	DataType?x;
	InitStack(&S);??//初始化棧
	Push(&S,3);?????//元素3入棧
	Push(&S,4);?????//元素4入棧
	Push(&S,100);???//元素100入棧
	Push(&S,200);???//元素200入棧
	Push(&S,2016);???//元素2016入棧
	show_Stack(&S);??//顯示當前棧各個元素
	if(Pop(&S,&x)){???//出棧操作,并顯示出棧的元素
		printf("出棧操作成功,當前出棧的元素是%d\n",x);
	}
	show_Stack(&S);
	printf("當前棧頂的元素是%d\n",GetTop(&S));???//顯示棧頂元素
}

void?InitStack(PStack?pS){?????????//棧的初始化,
	pS->pBot=(PNode)malloc(sizeof(Node));????
	if(pS->pBot?==?NULL){
		printf("初始化棧失敗");
		exit(-1);
	}else{
		pS->pTop?=pS->pBot;
		pS->pBot->pNext=NULL;
	}
}

bool?isEmpty(PStack?pS){
	if(pS->pTop?==?pS->pBot){
		return?true;
	}else{
		return?false;
	}
}

/*進棧操作*/
void?Push(PStack?pS,int?val){
	PNode?pNew?=?(PNode)malloc(sizeof(Node));
	if(pNew?==?NULL){
		printf("程序內存分配失敗");
		exit(-1);
	}else{
		pNew->data=val;
		pNew->pNext=pS->pTop;
		pS->pTop=?pNew;
	}
}

/*出棧操作*/
bool?Pop(PStack?pS,DataType?*?x){
	if(isEmpty(pS)){
		printf("棧里面沒有數據了.");
		return?false;
	}else{
		PNode?p=pS->pTop;
		*x=p->data;
		pS->pTop=p->pNext;
		free(p);
		return?true;
	}
}

/*獲取棧頂元素的值*/
DataType?GetTop(PStack?pS){
	if(isEmpty(pS)){
		printf("目前棧是空的,請稍后在試.");
		exit(-1);
	}else{
		PNode?p=pS->pTop;
		return?p->data;
	}
}

/*打印棧列表*/
void?show_Stack(PStack?pS){
	int?cnt=0;
	PNode?P?=?pS->pTop;
	printf("棧的列表信息如下:\n");
	while(P?!=?pS->pBot){
			printf("%d?",P->data);
			P?=?P->pNext;
			cnt++;
		}
	printf("\n棧的長度是%d:\n",cnt);
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

晋中市| 徐闻县| 新乐市| 洛扎县| 铁力市| 庄河市| 通州区| 灵丘县| 娄烦县| 聂荣县| 仙桃市| 漳平市| 锡林郭勒盟| 绥江县| 上饶市| 清河县| 峡江县| 崇礼县| 通山县| 米泉市| 温州市| 上思县| 和静县| 巴林左旗| 连平县| 荃湾区| 娱乐| 营口市| 句容市| 肥东县| 穆棱市| 甘南县| 无极县| 湟中县| 固原市| 社会| 郁南县| 汪清县| 龙井市| 衡东县| 行唐县|