淮海工學(xué)院數(shù)據(jù)結(jié)構(gòu)第一次實驗報告_第1頁
淮海工學(xué)院數(shù)據(jù)結(jié)構(gòu)第一次實驗報告_第2頁
淮海工學(xué)院數(shù)據(jù)結(jié)構(gòu)第一次實驗報告_第3頁
淮海工學(xué)院數(shù)據(jù)結(jié)構(gòu)第一次實驗報告_第4頁
淮海工學(xué)院數(shù)據(jù)結(jié)構(gòu)第一次實驗報告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選文檔淮海工學(xué)院計算機科學(xué)系實驗報告書課程名: 數(shù)據(jù)結(jié)構(gòu) 題 目: 線性數(shù)據(jù)結(jié)構(gòu)試驗 班 級: 軟嵌151 學(xué) 號: 2015123352 姓 名: 韓吉 評語:成績: 指導(dǎo)教師: 批閱時間: 年 月 日精選文檔線性表實驗報告要求1目的與要求:1)掌握線性表數(shù)據(jù)結(jié)構(gòu)的基本概念和抽象數(shù)據(jù)類型描述;2)熟練掌握線性表數(shù)據(jù)結(jié)構(gòu)的順序和鏈?zhǔn)酱鎯Υ姹硎荆?)熟練掌握線性表順序存儲結(jié)構(gòu)的基本操作算法實現(xiàn); 4)熟練掌握線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)的基本操作算法實現(xiàn);5)掌握線性表在實際問題中的應(yīng)用和基本編程技巧;6)按照實驗題目要求獨立正確地完成實驗內(nèi)容(提交程序清單及相關(guān)實驗數(shù)據(jù)與運行結(jié)果);7)按照報告格式

2、和內(nèi)容要求,認真書寫實驗報告,并于下周周二前統(tǒng)一提交實驗報告電子版文檔(每次實驗全體同學(xué)必須提交實驗報告電子版,實驗報告文檔文件命名方式:姓名+學(xué)號+數(shù)據(jù)結(jié)構(gòu)第X次實驗報告)提交給學(xué)委,而后由學(xué)委以班為單位統(tǒng)一打包(包文件名為:軟件14X班-數(shù)據(jù)結(jié)構(gòu)第X次實驗報告)用郵件發(fā)給老師;提交紙質(zhì)報告(每班每次收5份,學(xué)委安排,保證每學(xué)期每個同學(xué)至少提交一次)一起提交給老師。每次提交電子文檔時,學(xué)委務(wù)必統(tǒng)計和上報未交報告人數(shù)和具體姓名;凡逾期不交報告者,不再推遲提交,一律按照曠交處理。8)積極開展實驗組組內(nèi)交流和輔導(dǎo),嚴(yán)禁直接復(fù)制和剽竊他人實驗成果,一旦發(fā)現(xiàn)嚴(yán)肅處理;9)上實驗課前,要求每個同學(xué)基本寫

3、好程序,并存儲在自己的U盤上,用于實驗課堂操作時調(diào)試和運行。2實驗內(nèi)容或題目(在一個主程序中實現(xiàn)全部題目內(nèi)容)一、順序表的基本操作實現(xiàn)實驗要求:數(shù)據(jù)元素類型ElemType取整型int。按照順序存儲結(jié)構(gòu)實現(xiàn)如下算法:1)創(chuàng)建任意整數(shù)線性表(即線性表的元素值隨機在鍵盤上輸入)的順序存儲結(jié)構(gòu)(即順序表),長度限定在25之內(nèi);2)打印/顯示(遍歷)該線性表(依次打印/顯示出表中元素值);3)在順序表中查找第i個元素,并返回其值;4)在順序表第i個元素之前插入一已知元素;5)在順序表中刪除第i個元素;6)求順序表中所有元素值(整數(shù))之和;二、鏈表(帶頭結(jié)點)基本操作實驗要求:數(shù)據(jù)元素類型ElemTyp

4、e取字符型char。按照動態(tài)單鏈表結(jié)構(gòu)實現(xiàn)如下算法:1)按照頭插法或尾插法創(chuàng)建一個帶頭結(jié)點的字符型單鏈表(鏈表的字符元素從鍵盤輸入),長度限定在10之內(nèi);2)打?。ū闅v)該鏈表(依次打印出表中元素值,注意字符的輸入順序與鏈表的結(jié)點順序);3)在鏈表中查找第i個元素,i合法返回元素值,否則,返回FALSE;4)在鏈表中查找與一已知字符相同的第一個結(jié)點,有則返回TRUE,否則,返回FALSE;5)在鏈表中第i個結(jié)點之前插入一個新結(jié)點;6)在線性表中刪除第i個結(jié)點;7)計算鏈表的長度。3實驗步驟與源程序#include"stdio.h"#include"stdlib.h

5、"#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>L->l

6、ast+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>L->l

7、ast+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;/線性表的長度int

8、 t;/插入的元素int s;/刪除的位置int w;/要插入的位置int i;l=(SeqList *)malloc(sizeof(SeqList);q=(int*)malloc(sizeof(int);printf("請輸入線性表的長度:");scanf("%d",&r);l->last=r-1;printf("請輸入線性表中的各元素值:n");for(i=0;i<=l->last;i+)scanf("%d",&l->elemi);printf("線性表中所有元

9、素之和是:%dn",SumList(l);printf("請輸入要查找的位置:");scanf("%d",&p); printf("查找的元素是:%dn",GetData(l,p);printf("請輸入要插入的位置:");scanf("%d",&w);printf("插入的元素是:");scanf("%d",&t);InsList(l,p,t);printf("插入后的線性表:n");for(i=0;

10、i<=l->last;i+)printf("%d ",l->elemi);printf("n");printf("請輸入要刪除的位置:");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)第二題.cpp : De

11、fines 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(LinkList L);int

12、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;/要查找的序號int n;/要插入的位置int t;/ 要刪除的位置char a;/要查找的元素InitList(&k);Node *p;p=k-&

13、gt;next;printf("用尾插法建立單鏈表,請輸入鏈表數(shù)據(jù),以$結(jié)束!n"); CreateTail(k);while(p!=NULL)printf("%cn",p->data);p=p->next;printf("請輸入要查找的序號: ");scanf("%d",&m);printf("查找到的元素是:");Get(k,m);printf("n請輸入要查找的元素:");scanf(" %c",&a); Locate(k

14、,a);printf("n請輸入要插入的位置:");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請輸入要刪除的位置: ");scanf("%d",&

15、;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鏈表的長度是:%dn",ListLength(k);void InitList(LinkList *k)*k=(LinkList)malloc(sizeof(Node);(*k)->ne

16、xt=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->next

17、; 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 i,ElemTyp

18、e 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é)點的位置不合法!");return ERROR;r=p->next; p->next=p->next-&g

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論