999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

棧和鏈表的綜合應(yīng)用

2011-01-01 00:00:00王明俊魏洪明李志明

摘 要:本文從設(shè)計(jì)任務(wù),對問題分析理解,及算法中涉及知識(shí)點(diǎn)來簡述棧和鏈表的綜合應(yīng)用。

關(guān)鍵詞:棧鏈表入棧出棧

中圖分類號(hào):TH-39文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1674-098X(2011)01(a)-0205-01

1 設(shè)計(jì)的任務(wù)

借助一個(gè)棧,將帶頭結(jié)點(diǎn)的單鏈表逆置,用C語言實(shí)現(xiàn)。

2 對問題的分析和理解

首先理解棧和鏈表的基本知識(shí),然后建立一個(gè)帶頭結(jié)點(diǎn)的單鏈表,建立一個(gè)空棧,將建立的鏈表中數(shù)據(jù)入棧,再出棧賦給鏈表。最后輸出逆置單鏈表。

3 算法中涉及到的知識(shí)點(diǎn)

棧:僅限定在一端進(jìn)行插入和刪除操作的線性表,允許插入和刪除的一端稱為棧頂,另一端稱為棧底;沒有任何元素的棧稱為空棧;棧中元素之間的關(guān)系為一對一的關(guān)系;棧的運(yùn)算規(guī)則:只能在棧頂運(yùn)算,先進(jìn)后出(FILO)或者是后進(jìn)先出(LIFO);入棧是從棧頂(表尾)插入元素;出棧是從棧頂(表尾)刪除元素;棧的基本運(yùn)算有:構(gòu)造空棧,進(jìn)棧—可形象地理解為壓入,這時(shí)棧中會(huì)多一個(gè)元素,出棧—可形象地理解為彈出,彈出后棧中就無此元素了。

4 設(shè)計(jì)用計(jì)算機(jī)環(huán)境:turbo C2.0/ VC++環(huán)境

5 任務(wù)的源代碼

#include

#include

#define maxsize 1024

typedef struct//自定義棧類型

{int data[maxsize];

int top;}seqstack;

typedef struct note //單鏈表

{int data;

struct note *next;}linklist;

linklist *head,*p;

linklist *createlist()//創(chuàng)建單鏈表

{char ch;int x;

printf(\"請輸入一個(gè)字符和數(shù)字\");

linklist *head,*r,*p;

p=(linklist *)malloc(sizeof(linklist));

head=p;p->next=NULL;r=p;ch=getchar();

while(ch!='?')

{scanf(\"%d\",x);

p=(linklist *)malloc(sizeof(linklist));

p->data=x;p->next=NULL;r->next=p;r=r->next;ch=getchar();}

return (head);}

seqstack *init_seqstack() //置空棧

{ seqstack *s;

s=(seqstack *)malloc(sizeof(seqstack));

s->top=-1; return s;}

int empty_seqstack(seqstack *s) //判空棧

{if(s->top==-1)return 1;

elsereturn 0;}

int push_seqstack(seqstack *s,int x)//入棧

{if(s->top==maxsize-1)return 0;

else {s->top++;s->data[s->top]=x;return 1;}

int pop_seqstack(seqstack *s) //出棧

{ int x;

if(empty_seqstack(s)) return 0;

else{x=s->data[s->top]; s->top--;return x;} }

void main()主程序

{linklist *head,*p;

seqstack *s;

int select,loop=1;

while(loop)

{ printf(\"[1]建立單鏈表[2]將鏈表數(shù)據(jù)入棧[3]輸出逆置鏈表==》\");

scanf(\"%d\",select);

switch(select)

{case 1: head=createlist();break;

case 2: s=init_seqstack();p=head->next;

while(p->next!=NULL)

{push_seqstack(s,p->data); p=p->next;} break;

case 3:p=head->next;

while(p->next!=NULL)

{p->data=pop_seqstack(s); p=p->next;}

p=head->next;

while(p->next!=NULL) //打印輸出

{printf(\"%4d\",p->data); p=p->next->next;}

printf(\"\\");break;}}}

6 采用的算法(圖1流程圖)

7 測試結(jié)果 (圖2)

8 結(jié)語

棧是操作受限的線性表,具有順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。順序表示的棧,必須預(yù)先分配空間,并且空間大小受限,使用起來限制比較多。而且,由于限定存取位置,順序表示的隨機(jī)存取的優(yōu)點(diǎn)就沒有了,但是,在現(xiàn)實(shí)生活中解決倒序問題是還是用順序棧比較方便。

參考文獻(xiàn)

[1] 王學(xué)軍.數(shù)據(jù)結(jié)構(gòu)[M].中國計(jì)劃出版社.

[2] 嚴(yán)蔚敏.數(shù)據(jù)結(jié)構(gòu)[M].清華大學(xué)出版社.

主站蜘蛛池模板: 六月婷婷激情综合| 亚洲不卡影院| 亚洲欧美不卡| 美女亚洲一区| 毛片大全免费观看| 亚洲AⅤ永久无码精品毛片| 国内精品视频区在线2021| 99re免费视频| 在线毛片网站| 欧美人人干| 欧美日本在线| 久久国产亚洲欧美日韩精品| 免费A∨中文乱码专区| 亚洲狠狠婷婷综合久久久久| …亚洲 欧洲 另类 春色| 欧美69视频在线| 日韩免费成人| 福利在线免费视频| 亚洲IV视频免费在线光看| 久久 午夜福利 张柏芝| 中文无码精品A∨在线观看不卡| 免费看美女自慰的网站| 又爽又大又光又色的午夜视频| 日本三级精品| 亚洲精品卡2卡3卡4卡5卡区| 国产精品视频a| 欧美久久网| 国产精品va免费视频| 老色鬼欧美精品| 无码AV高清毛片中国一级毛片| 啦啦啦网站在线观看a毛片 | 91亚洲影院| 亚洲精品国产首次亮相| 亚洲 欧美 偷自乱 图片| 日韩精品成人网页视频在线 | 精品无码专区亚洲| 综合网天天| 亚洲中文在线视频| 国产微拍精品| 国产成人久久综合一区| 成·人免费午夜无码视频在线观看 | 怡红院美国分院一区二区| 亚洲区欧美区| 麻豆精品视频在线原创| 国产一区三区二区中文在线| 亚洲日韩Av中文字幕无码| 亚洲 欧美 日韩综合一区| 国产欧美成人不卡视频| 97成人在线视频| 久久久久夜色精品波多野结衣| 永久免费无码日韩视频| 日韩成人免费网站| 国产一区二区三区在线观看免费| 亚洲人成影院在线观看| 亚州AV秘 一区二区三区| 国产精品lululu在线观看| 最新亚洲人成网站在线观看| 在线精品视频成人网| 麻豆精品在线播放| 久久男人资源站| 国产又黄又硬又粗| 少妇极品熟妇人妻专区视频| 中文字幕2区| 亚洲三级a| 婷婷亚洲视频| 中国丰满人妻无码束缚啪啪| 538国产视频| 国产综合色在线视频播放线视| 尤物在线观看乱码| 国产亚洲一区二区三区在线| 免费无码网站| 99这里只有精品6| 国产丝袜91| 26uuu国产精品视频| 亚洲AV无码精品无码久久蜜桃| 一本大道无码高清| 最新精品久久精品| 永久免费AⅤ无码网站在线观看| 99草精品视频| 色婷婷成人| 国内嫩模私拍精品视频| 国产在线一二三区|