版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、淮海工學(xué)院計(jì)算機(jī)科學(xué)系實(shí)驗(yàn)報(bào)告書課程名: 數(shù)據(jù)結(jié)構(gòu) 題 目: 線性數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn) (棧與對(duì)立隊(duì)列及其應(yīng)用)班 級(jí): 學(xué) 號(hào): 2012122693 姓 名: 評(píng)語:成績(jī): 指導(dǎo)教師: 批閱時(shí)間: 年 月 日線性表算法實(shí)現(xiàn)與應(yīng)用報(bào)告要求1目的與要求:1)掌握棧與隊(duì)列的數(shù)據(jù)類型描述及特點(diǎn);2)掌握棧的順序和鏈?zhǔn)酱鎯?chǔ)存表示與基本算法的實(shí)現(xiàn);3)掌握隊(duì)列的鏈?zhǔn)胶脱h(huán)存儲(chǔ)表示與基本操作算法實(shí)現(xiàn);4) 掌握棧與隊(duì)列在實(shí)際問題中的應(yīng)用和基本編程技巧;5)按照實(shí)驗(yàn)題目要求,獨(dú)立完成實(shí)際程序的編寫編寫、調(diào)試和運(yùn)行,并通過用例數(shù)的運(yùn)行過程抓獲相關(guān)屏面驗(yàn)證程序設(shè)計(jì)的正確性;7)由于國(guó)慶節(jié)占用授課時(shí)間,所以本次實(shí)驗(yàn)將不
2、做統(tǒng)一上機(jī)安排,要求同學(xué)們節(jié)日期間自行完成實(shí)驗(yàn)任務(wù),并于第6周周4以前按時(shí)提交實(shí)驗(yàn)報(bào)告。2 實(shí)驗(yàn)內(nèi)容或題目(一)必做題:1、實(shí)現(xiàn)順序棧的創(chuàng)建(初始化)、壓入(插入)、彈出(刪除)操作(數(shù)據(jù)元素類型自己選取,如整型、字符型等),并給出棧的每次操作變化狀態(tài);2、實(shí)現(xiàn)鏈棧的創(chuàng)建(初始化)、壓入(插入)、彈出(刪除)操作(數(shù)據(jù)元素類型自己選取,如整型、字符型等),要求給出棧的操作變化過程;3、實(shí)現(xiàn)循環(huán)隊(duì)列的創(chuàng)建、進(jìn)隊(duì)、出隊(duì)等基本操作(數(shù)據(jù)元素類型自己選取,如整型、字符型等),并實(shí)時(shí)給出隊(duì)列的操作變化狀態(tài);4、實(shí)現(xiàn)鏈?zhǔn)疥?duì)列的創(chuàng)建、進(jìn)隊(duì)、出隊(duì)等基本操作(數(shù)據(jù)元素類型自己選取,如整型、字符型等),并實(shí)時(shí)給出
3、隊(duì)列的操作變化狀態(tài);(二)選做題(視自己能力而定,數(shù)量不限):任選一個(gè)或多個(gè)源程序(已經(jīng)發(fā)給學(xué)委),并閱讀、調(diào)試和運(yùn)行程序,而后給出程序功能分析和實(shí)例運(yùn)行演示;1、實(shí)現(xiàn)表達(dá)式求值算法程序;2、用遞歸算法實(shí)現(xiàn)漢諾塔問題算法程序;3、使用循環(huán)隊(duì)列實(shí)現(xiàn)打印楊輝三角形算法程序。3 實(shí)驗(yàn)步驟與源程序 第一題:#include <stdio.h>#include <stdlib.h>#define TRUE 1#define FALSE 0#define Size 50typedef structint elemSize; int top; SeqStack;void InitSt
4、ack(SeqStack *S) S->top =-1;int IsEmpty(SeqStack *S)return(S->top=-1?TRUE:FALSE);/判斷棧空 為空是真 反之為假int IsFull(SeqStack *S)return(S->top=Size-1?TRUE:FALSE);/判斷棧滿 為滿是真 反之為假int Push(SeqStack *S,int x)/壓棧if(S->top=Size-1) return(FALSE); S->top+;S->elemS->top = x;return(TRUE);int Pop(Se
5、qStack *S,int *x)/彈出 if(S->top = -1) return(FALSE);else *x = S->elemS->top;S->top-; return(TRUE);void main() SeqStack S;int x,y,i,l; InitStack(&S); if(!IsFull(&S)printf("??眨簄");printf("輸入要壓入的元素個(gè)數(shù)(50以內(nèi)):n");scanf("%d",&l);printf("輸入要壓入的元素:n&q
6、uot;);for(i=0;i<l;i+)scanf("%d",&y);Push(&S,y); printf("彈出:n");while(!IsEmpty(&S) Pop(&S,&x); printf("%dn",x);第二題:#define TRUE 1#define FALSE 0#include <stdio.h>#include <stdlib.h>typedef struct nodeint data;struct node *next;LinkStack
7、Node;typedef LinkStackNode *LinkStack;int IsEmpty(LinkStack S)return NULL=S->next?TRUE:FALSE;int InitStack(LinkStack *S)*S=(node*)malloc(sizeof(node);if(NULL=*S)return FALSE;(*S)->next =NULL;return TRUE;int Push(LinkStack S, int x)LinkStackNode *temp;temp=(LinkStackNode *)malloc(sizeof(LinkSta
8、ckNode); if(temp=NULL) return(FALSE); temp->data=x;temp->next=S->next;S->next=temp; return(TRUE);int Pop(LinkStack S, int *x) LinkStackNode * temp;temp=S->next;if(temp=NULL) return(FALSE);S->next=temp->next;*x=temp->data;free(temp); return(TRUE);void main()LinkStackNode *s; I
9、nitStack(&s);int x,i,l;if(IsEmpty(s)printf("???n");printf("請(qǐng)輸入壓入元素個(gè)數(shù)(50以內(nèi)):n"); scanf("%d",&l);printf("請(qǐng)輸入壓入元素:n");for(i=0;i<l;i+)scanf("%d",&x);Push(s,x);printf("彈出:n");while(!IsEmpty(s)Pop(s, &x);printf("%dn",
10、x);第三題:#include <stdio.h>#include <stdlib.h>#define TRUE 1#define FALSE 0#define MAXSIZE 50 typedef struct int elementMAXSIZE; int front; int rear; SeqQueue;void InitQueue(SeqQueue *Q) Q->front=Q->rear=0;int EnterQueue(SeqQueue *Q, int x) if(Q->rear+1)%MAXSIZE=Q->front) retur
11、n(FALSE);Q->elementQ->rear=x;Q->rear=(Q->rear+1)%MAXSIZE; return(TRUE); int DeleteQueue(SeqQueue *Q, int *x) if(Q->front=Q->rear) return(FALSE);*x=Q->elementQ->front;Q->front=(Q->front+1)%MAXSIZE; return(TRUE); int IsEmpty(SeqQueue *Q) if(Q->front=Q->rear) return(
12、TRUE);elsereturn(FALSE); void main()SeqQueue s;InitQueue(&s);int x,i,l;if(IsEmpty (&s)printf("此時(shí)為空隊(duì)列n");printf("請(qǐng)輸入進(jìn)隊(duì)元素個(gè)數(shù)n");scanf("%d",&l);printf("請(qǐng)輸入元素n");for(i=0;i<l;i+)scanf("%d",&x);EnterQueue(&s,x);printf("出隊(duì):n"
13、);while(!IsEmpty(&s)DeleteQueue(&s,&x);printf("%dn",x);if(IsEmpty (&s)printf("此時(shí)為空隊(duì)列n");第四題:#include <stdio.h>#include <stdlib.h>#define TRUE 1#define FALSE 0typedef struct Nodeint data;struct Node *next;LinkQueueNode;typedef structLinkQueueNode *front
14、 ;LinkQueueNode *rear;LinkQueue;int IsEmpty(LinkQueue *Q)return Q->front =Q->rear?TRUE:FALSE;int InitQueue(LinkQueue *Q)Q->front=(LinkQueueNode *)malloc(sizeof(LinkQueueNode);if(Q->front!=NULL)Q->rear=Q->front;Q->front->next=NULL;return (TRUE);else return(FALSE);int EnterQueu
15、e(LinkQueue *Q,int x)LinkQueueNode *NewNode;NewNode=(LinkQueueNode *)malloc(sizeof(LinkQueueNode);if(NewNode!=NULL)NewNode->data=x;NewNode->next=NULL;Q->rear->next=NewNode;Q->rear=NewNode;return (TRUE);else return(FALSE);int DeleteQueue(LinkQueue *Q,int *x)LinkQueueNode *p;if(Q->fr
16、ont=Q->rear)return(FALSE);p=Q->front->next ;Q->front->next =p->next ;if(Q->rear=p)Q->rear=Q->front;*x=p->data;free(p);return (TRUE);void main()LinkQueue q;int x,i,l;InitQueue(&q);if(IsEmpty(&q)printf("此時(shí)為空隊(duì)列n");printf("請(qǐng)輸入進(jìn)隊(duì)元個(gè)數(shù)素n");scanf(&quo
17、t;%d",&l);printf("請(qǐng)輸入元素:n");for(i=0;i<l;i+)scanf("%d",&x);EnterQueue(&q,x);printf("出隊(duì):n");for(i=0;i<l;i+)DeleteQueue(&q,&x); printf("%dn",x);if(IsEmpty(&q)printf("此時(shí)為空隊(duì)列n");4 測(cè)試數(shù)據(jù)與實(shí)驗(yàn)結(jié)果(可以抓圖粘貼) 5 結(jié)果分析與實(shí)驗(yàn)體會(huì) 開始在編寫第一題時(shí),將所有代碼完成后一直報(bào)錯(cuò),反復(fù)檢查代碼沒有錯(cuò)誤,后來看到頭文件名是#include <iostream.h>因?yàn)镃+習(xí)慣導(dǎo)致錯(cuò)誤,后來改為<stdio.h>就正確
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年河南中醫(yī)藥大學(xué)單招綜合素質(zhì)筆試參考題庫(kù)含詳細(xì)答案解析
- 2026年扎蘭屯職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試模擬試題含詳細(xì)答案解析
- 中醫(yī)護(hù)理在急診洗胃中的角色
- 2026年云南錫業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試參考題庫(kù)含詳細(xì)答案解析
- 2026年長(zhǎng)江藝術(shù)工程職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試備考題庫(kù)含詳細(xì)答案解析
- 外匯入門基礎(chǔ)課件
- 2026年四川文化傳媒職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試備考試題含詳細(xì)答案解析
- 2026年安徽工商職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試參考題庫(kù)含詳細(xì)答案解析
- 2026湖北武漢華中科技大學(xué)同濟(jì)醫(yī)學(xué)院附屬協(xié)和醫(yī)院質(zhì)子放療物理師招聘參考考試題庫(kù)及答案解析
- 2026年重慶工商大學(xué)派斯學(xué)院?jiǎn)握芯C合素質(zhì)考試模擬試題含詳細(xì)答案解析
- 2025年商業(yè)物業(yè)抵押貸款合同范本
- 2024用電信息采集系統(tǒng)技術(shù)規(guī)范第1部分:專變采集終端
- 餐廳原料調(diào)價(jià)制度方案
- 浙江省杭州市2024年中考語文試卷(含答案)
- 四川省綿陽市2020年中考數(shù)學(xué)試題(含解析)
- 期末達(dá)標(biāo)測(cè)試卷(試題)-2024-2025學(xué)年人教PEP版英語四年級(jí)上冊(cè)
- DLT 1563-2016 中壓配電網(wǎng)可靠性評(píng)估導(dǎo)則
- HJ 377-2019 化學(xué)需氧量(CODCr)水質(zhì)在線自動(dòng)監(jiān)測(cè)儀技術(shù)要求及檢測(cè)方法
- (正式版)SHT 3075-2024 石油化工鋼制壓力容器材料選用規(guī)范
- 油脂科技有限公司年產(chǎn)3萬噸油酸項(xiàng)目環(huán)評(píng)可研資料環(huán)境影響
- 浙江省水利水電工程施工招標(biāo)文件示范文本
評(píng)論
0/150
提交評(píng)論