




版權(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)試驗(yàn) 班 級(jí): 軟嵌151 學(xué) 號(hào): 2015123352 姓 名: 韓吉 評(píng)語:成績(jī): 指導(dǎo)教師: 批閱時(shí)間: 年 月 日 數(shù)據(jù)結(jié)構(gòu) 實(shí)驗(yàn)報(bào)告 - 13 -線性表實(shí)驗(yàn)報(bào)告要求1目的與要求:1)掌握線性表數(shù)據(jù)結(jié)構(gòu)的基本概念和抽象數(shù)據(jù)類型描述;2)熟練掌握線性表數(shù)據(jù)結(jié)構(gòu)的順序和鏈?zhǔn)酱鎯?chǔ)存表示;3)熟練掌握線性表順序存儲(chǔ)結(jié)構(gòu)的基本操作算法實(shí)現(xiàn); 4)熟練掌握線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的基本操作算法實(shí)現(xiàn);5)掌握線性表在實(shí)際問題中的應(yīng)用和基本編程技巧;6)按照實(shí)驗(yàn)題目要求獨(dú)立正確地完成實(shí)驗(yàn)內(nèi)容(提交程序清單及相關(guān)實(shí)驗(yàn)數(shù)據(jù)與運(yùn)行結(jié)果)
2、;7)按照?qǐng)?bào)告格式和內(nèi)容要求,認(rèn)真書寫實(shí)驗(yàn)報(bào)告,并于下周周二前統(tǒng)一提交實(shí)驗(yàn)報(bào)告電子版文檔(每次實(shí)驗(yàn)全體同學(xué)必須提交實(shí)驗(yàn)報(bào)告電子版,實(shí)驗(yàn)報(bào)告文檔文件命名方式:姓名+學(xué)號(hào)+數(shù)據(jù)結(jié)構(gòu)第X次實(shí)驗(yàn)報(bào)告)提交給學(xué)委,而后由學(xué)委以班為單位統(tǒng)一打包(包文件名為:軟件14X班-數(shù)據(jù)結(jié)構(gòu)第X次實(shí)驗(yàn)報(bào)告)用郵件發(fā)給老師;提交紙質(zhì)報(bào)告(每班每次收5份,學(xué)委安排,保證每學(xué)期每個(gè)同學(xué)至少提交一次)一起提交給老師。每次提交電子文檔時(shí),學(xué)委務(wù)必統(tǒng)計(jì)和上報(bào)未交報(bào)告人數(shù)和具體姓名;凡逾期不交報(bào)告者,不再推遲提交,一律按照曠交處理。8)積極開展實(shí)驗(yàn)組組內(nèi)交流和輔導(dǎo),嚴(yán)禁直接復(fù)制和剽竊他人實(shí)驗(yàn)成果,一旦發(fā)現(xiàn)嚴(yán)肅處理;9)上實(shí)驗(yàn)課前,
3、要求每個(gè)同學(xué)基本寫好程序,并存儲(chǔ)在自己的U盤上,用于實(shí)驗(yàn)課堂操作時(shí)調(diào)試和運(yùn)行。2實(shí)驗(yàn)內(nèi)容或題目(在一個(gè)主程序中實(shí)現(xiàn)全部題目?jī)?nèi)容)一、順序表的基本操作實(shí)現(xiàn)實(shí)驗(yàn)要求:數(shù)據(jù)元素類型ElemType取整型int。按照順序存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)如下算法:1)創(chuàng)建任意整數(shù)線性表(即線性表的元素值隨機(jī)在鍵盤上輸入)的順序存儲(chǔ)結(jié)構(gòu)(即順序表),長(zhǎng)度限定在25之內(nèi);2)打印/顯示(遍歷)該線性表(依次打印/顯示出表中元素值);3)在順序表中查找第i個(gè)元素,并返回其值;4)在順序表第i個(gè)元素之前插入一已知元素;5)在順序表中刪除第i個(gè)元素;6)求順序表中所有元素值(整數(shù))之和;二、鏈表(帶頭結(jié)點(diǎn))基本操作實(shí)驗(yàn)要求:數(shù)據(jù)元素
4、類型ElemType取字符型char。按照動(dòng)態(tài)單鏈表結(jié)構(gòu)實(shí)現(xiàn)如下算法:1)按照頭插法或尾插法創(chuàng)建一個(gè)帶頭結(jié)點(diǎn)的字符型單鏈表(鏈表的字符元素從鍵盤輸入),長(zhǎng)度限定在10之內(nèi);2)打?。ū闅v)該鏈表(依次打印出表中元素值,注意字符的輸入順序與鏈表的結(jié)點(diǎn)順序);3)在鏈表中查找第i個(gè)元素,i合法返回元素值,否則,返回FALSE;4)在鏈表中查找與一已知字符相同的第一個(gè)結(jié)點(diǎn),有則返回TRUE,否則,返回FALSE;5)在鏈表中第i個(gè)結(jié)點(diǎn)之前插入一個(gè)新結(jié)點(diǎn);6)在線性表中刪除第i個(gè)結(jié)點(diǎn);7)計(jì)算鏈表的長(zhǎng)度。3實(shí)驗(yàn)步驟與源程序#include"stdio.h"#include"
5、;stdlib.h"#include"malloc.h"#define OK 1#define ERROR 0#define TURE 1#define FALSE 0#define ElemType int#define MAXSIZE 25typedef structElemType elemMAXSIZE;int last;SeqList;int GetData(SeqList *L,int i)return L->elemi-1;int InsList(SeqList *L,int i,ElemType e)int k;if(i<1)|(i&g
6、t;L->last+2)printf("插入位置i值不合法!");return(ERROR);if(L->last>=MAXSIZE-1)printf("超出了鏈表的最大范圍,無法插入無法插入!");return(ERROR);for(k=L->last;k>=i-1;k-)L->elemk+1=L->elemk;L->elemi-1=e;L->last+;return(OK);int DelList(SeqList *L,int i,ElemType *e)int k;if(i<1)|(i&g
7、t;L->last+1)printf("刪除位置不在表中,不合法!");return(ERROR);*e=L->elemi-1;for(k=i;k<=L->last;k+)L->elemk-1=L->elemk;L->last-;return(OK);int SumList(SeqList *L)int sum=0;for(int i=0;i<=L->last;i+)sum+=L->elemi;return(sum);void main()SeqList *l;int p;/要查找的位置int *q;int r;/
8、線性表的長(zhǎng)度int t;/插入的元素int s;/刪除的位置int w;/要插入的位置int i;l=(SeqList *)malloc(sizeof(SeqList);q=(int*)malloc(sizeof(int);printf("請(qǐng)輸入線性表的長(zhǎng)度:");scanf("%d",&r);l->last=r-1;printf("請(qǐng)輸入線性表中的各元素值:n");for(i=0;i<=l->last;i+)scanf("%d",&l->elemi);printf(&quo
9、t;線性表中所有元素之和是:%dn",SumList(l);printf("請(qǐng)輸入要查找的位置:");scanf("%d",&p); printf("查找的元素是:%dn",GetData(l,p);printf("請(qǐng)輸入要插入的位置:");scanf("%d",&w);printf("插入的元素是:");scanf("%d",&t);InsList(l,p,t);printf("插入后的線性表:n")
10、;for(i=0;i<=l->last;i+)printf("%d ",l->elemi);printf("n");printf("請(qǐng)輸入要?jiǎng)h除的位置:");scanf("%d",&s);DelList(l,s,q);printf("刪除的元素值是:%dn",*q);printf("刪除后的線性表:n");for(i=0;i<=l->last;i+)printf("%d ",l->elemi);/ 數(shù)據(jù)結(jié)構(gòu)第二題
11、.cpp : Defines the entry point for the console application./#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define OK 1#define ERROR 0#define TURE 1#define FALSE 0typedef char ElemType;typedef struct NodeElemType data;struct Node*next;Node,*LinkList;void CreateTail(LinkLis
12、t L);int DelList(LinkList L,int i,ElemType e);void Get(LinkList L,int i);void InitList(LinkList *l);int InsList(LinkList L,int i,ElemType e);int ListLength(LinkList L);void Locate(LinkList L,ElemType e);void main()LinkList k;int m;/要查找的序號(hào)int n;/要插入的位置int t;/ 要?jiǎng)h除的位置char a;/要查找的元素InitList(&k);Node
13、 *p;p=k->next;printf("用尾插法建立單鏈表,請(qǐng)輸入鏈表數(shù)據(jù),以$結(jié)束!n"); CreateTail(k);while(p!=NULL)printf("%cn",p->data);p=p->next;printf("請(qǐng)輸入要查找的序號(hào): ");scanf("%d",&m);printf("查找到的元素是:");Get(k,m);printf("n請(qǐng)輸入要查找的元素:");scanf(" %c",&a);
14、 Locate(k,a);printf("n請(qǐng)輸入要插入的位置:");scanf("%d",&n);printf("插入的元素是:");scanf(" %c",&a);InsList(k,n,a);printf("插入后的鏈表是:");p=k->next;while(p!=NULL)printf("%c ",p->data);p=p->next;printf("n請(qǐng)輸入要?jiǎng)h除的位置: ");scanf("%d&q
15、uot;,&t);DelList(k,t,a);printf("刪除的元素是:%cn",a);scanf("%c",&a);printf("刪除后的鏈表是:");p=k->next;while(p!=NULL)printf("%c ",p->data);p=p->next;printf("n鏈表的長(zhǎng)度是:%dn",ListLength(k);void InitList(LinkList *k)*k=(LinkList)malloc(sizeof(Node);(*
16、k)->next=NULL; void CreateTail(LinkList L)char c;Node *r,*s;int flag=1; r=L; while(flag) c=getchar();if(c!='$')s=(Node*)malloc(sizeof(Node);s->data=c;r->next=s;r=s;elseflag=0;r->next=NULL; void Get(LinkList L,int i)int j;Node *p;p=L;j=0; while(p->next!=NULL&&j<i)p=p
17、->next; j+; if(i=j)printf("%c",p->data); else printf("FALSE"); void Locate(LinkList L,ElemType e)Node *p;p=L->next; while(p!=NULL)if(p->data!=e)p=p->next;else break; if(p->data=e)printf("TURE");else printf("FALSE");int InsList(LinkList L,int
18、i,ElemType e)Node *pre,*s;int k;pre=L;k=0; while(pre!=NULL&&k<i-1)pre=pre->next;k=k+1;if(k!=i-1)printf("插入位置不合法!");return ERROR;s=(Node*)malloc(sizeof(Node); s->data=e; s->next=pre->next; pre->next=s;return OK;int DelList(LinkList L,int i,ElemType e)Node *p,*r;int k;p=L;k=0;while(p!=NULL&&k<i-1)p=p->next;k=k+1;if(k!=i-1)printf("刪除結(jié)點(diǎn)的位置不合法!");return ERROR;r=p->next; p->next=p->next-&
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 曹妃甸職業(yè)技術(shù)學(xué)院《廣告市場(chǎng)調(diào)查》2023-2024學(xué)年第二學(xué)期期末試卷
- 滄州醫(yī)學(xué)高等??茖W(xué)校《風(fēng)力發(fā)電原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 基于YOLOv5的新能源汽車電池集流盤缺陷檢測(cè)研究
- 北京科技職業(yè)學(xué)院《分子生物學(xué)與植保生物技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年不良資產(chǎn)處置市場(chǎng)格局前瞻:創(chuàng)新模式與行業(yè)生態(tài)演變分析
- 地理●河北卷丨2022年河北省普通高中學(xué)業(yè)水平等級(jí)考試地理試卷及答案
- 2025年保險(xiǎn)行業(yè)數(shù)字化理賠服務(wù)與智能客服研究報(bào)告
- 教育培訓(xùn)機(jī)構(gòu)資料TR-031-R01 合同終止函樣本
- 2025年保險(xiǎn)數(shù)字化理賠服務(wù)理賠服務(wù)與保險(xiǎn)業(yè)可持續(xù)發(fā)展報(bào)告
- 北京經(jīng)濟(jì)技術(shù)職業(yè)學(xué)院《酒店餐飲運(yùn)行實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 古詩文聯(lián)讀 專項(xiàng)訓(xùn)練-2025年中考語文復(fù)習(xí)突破(江蘇專用)(解析版)
- 課件:《中華民族共同體概論》第十五講:新時(shí)代與中華民族共同體建設(shè)
- 2024至2030年中國(guó)鍋爐給水泵行業(yè)深度調(diào)研及發(fā)展預(yù)測(cè)報(bào)告
- 2024年海南省中考?xì)v史試題
- 中醫(yī)穴位埋線
- 500千伏變電站工程水土保持監(jiān)理總結(jié)報(bào)告
- 中醫(yī)中風(fēng)護(hù)理方案
- 2024年全國(guó)數(shù)據(jù)應(yīng)用大賽“數(shù)字安全賽”備賽試題庫(含答案)
- 2024屆山東省青島市嶗山區(qū)小學(xué)六年級(jí)第二學(xué)期小升初數(shù)學(xué)試卷含解析
- 完整版交管12123駕照學(xué)法減分復(fù)習(xí)考試題庫及答案【全優(yōu)】
- 畢業(yè)設(shè)計(jì)論文(基于組態(tài)和plc自動(dòng)輸送線控制系統(tǒng)設(shè)計(jì))-6
評(píng)論
0/150
提交評(píng)論