數(shù)據(jù)結(jié)構(gòu)第1次實(shí)驗(yàn)內(nèi)容及報告書_第1頁
數(shù)據(jù)結(jié)構(gòu)第1次實(shí)驗(yàn)內(nèi)容及報告書_第2頁
數(shù)據(jù)結(jié)構(gòu)第1次實(shí)驗(yàn)內(nèi)容及報告書_第3頁
數(shù)據(jù)結(jié)構(gòu)第1次實(shí)驗(yàn)內(nèi)容及報告書_第4頁
數(shù)據(jù)結(jié)構(gòu)第1次實(shí)驗(yàn)內(nèi)容及報告書_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

淮海工學(xué)院計(jì)算機(jī)科學(xué)系實(shí)驗(yàn)報告書課程名:《數(shù)據(jù)結(jié)構(gòu)》題目:線性表數(shù)據(jù)結(jié)構(gòu)試驗(yàn)班級:計(jì)算機(jī)132學(xué)號:2013122753姓名:魏紅云評語:評語:成績:指導(dǎo)教師:批閱時間:年月日《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報告 -PAGE1-線性表實(shí)驗(yàn)報告要求1目的與要求:1)掌握線性表數(shù)據(jù)結(jié)構(gòu)的基本概念和抽象數(shù)據(jù)類型描述;2)熟練掌握線性表數(shù)據(jù)結(jié)構(gòu)的順序和鏈?zhǔn)酱鎯Υ姹硎荆?)熟練掌握線性表順序存儲結(jié)構(gòu)的基本操作算法實(shí)現(xiàn);4)熟練掌握線性表的鏈?zhǔn)酱鎯Y(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é)果);7)按照報告格式和內(nèi)容要求,認(rèn)真書寫實(shí)驗(yàn)報告,并在試驗(yàn)課后第三天(下周一以前)將編寫好的實(shí)驗(yàn)報告電子文檔(同學(xué)編寫實(shí)驗(yàn)報告文件命名方式:姓名+學(xué)號+數(shù)據(jù)結(jié)構(gòu)第X次實(shí)驗(yàn)報告)提交給學(xué)委,而后由學(xué)委統(tǒng)一打包(包文件名為:計(jì)算機(jī)13X班-數(shù)據(jù)結(jié)構(gòu)第X次實(shí)驗(yàn)報告)和紙質(zhì)報告(每班每次收5份,學(xué)委安排,保證每個同學(xué)至少提交一次)一起提交給老師。凡逾期不交報告者,不再單獨(dú)接收,均做曠交處理;8)積極開展實(shí)驗(yàn)組組內(nèi)交流和輔導(dǎo),嚴(yán)禁復(fù)制和剽竊他人實(shí)驗(yàn)成果,一旦發(fā)現(xiàn)嚴(yán)肅處理;9)上實(shí)驗(yàn)課前,要求每個同學(xué)基本寫好程序,并存儲在自己的U盤上,用于實(shí)驗(yàn)課堂操作時調(diào)試和運(yùn)行。凡不做準(zhǔn)備,沒有提前編寫程序者,拒絕上機(jī)試驗(yàn)。2實(shí)驗(yàn)內(nèi)容或題目(在一個程序中實(shí)現(xiàn)全部題目)一、順序表的基本操作實(shí)現(xiàn)實(shí)驗(yàn)要求:數(shù)據(jù)元素類型ElemType取整型int。按照順序存儲結(jié)構(gòu)實(shí)現(xiàn)如下算法:1)創(chuàng)建任意整數(shù)線性表(即線性表的元素值隨機(jī)在鍵盤上輸入)的順序存儲結(jié)構(gòu)(即順序表),長度限定在25之內(nèi);2)打印/顯示(遍歷)該線性表(依次打印/顯示出表中元素值);3)在順序表中查找第i個元素,并返回其值;4)在順序表第i個元素之前插入一已知元素;5)在順序表中刪除第i個元素;6)求順序表中所有元素值(整數(shù))之和;二、鏈表(帶頭結(jié)點(diǎn))基本操作實(shí)驗(yàn)要求:數(shù)據(jù)元素類型ElemType取字符型char。按照動態(tài)單鏈表結(jié)構(gòu)實(shí)現(xiàn)如下算法:1)按照頭插法或尾插法創(chuàng)建一個帶頭結(jié)點(diǎn)的字符型單鏈表(鏈表的字符元素從鍵盤輸入),長度限定在10之內(nèi);2)打?。ū闅v)該鏈表(依次打印出表中元素值,注意字符的輸入順序與鏈表的結(jié)點(diǎn)順序);3)在鏈表中查找第i個元素,i合法返回元素值,否則,返回FALSE;4)在鏈表中查找與一已知字符相同的第一個結(jié)點(diǎn),有則返回TRUE,否則,返回FALSE;5)在鏈表中第i個結(jié)點(diǎn)之前插入一個新結(jié)點(diǎn);6)在線性表中刪除第i個結(jié)點(diǎn);7)計(jì)算鏈表的長度。3實(shí)驗(yàn)步驟與源程序步驟:1:看清題目,理解題目2:分析方法,畫大致流程圖(用C++的方法,構(gòu)造函數(shù)再調(diào)用)3:整合程序代碼4:調(diào)試糾錯再調(diào)試直至成功第一題源程序:#include"iostream.h"#defineMaxSize25typedefintDataType;classSeqList{DataTypelist[MaxSize];intlength;public:SeqList(){length=0;}voidSLCreat(intn);voidSLInsert(inti,DataTypex);voidSLDelete(inti);DataTypeSLGet(inti);DataTypeSLSum();intSLIsEmpty();voidSLPrint();};voidSeqList::SLCreat(intn){DataTypex;cout<<"請輸入數(shù)據(jù)元素值:";for(inti=0;i<n;i++){cin>>x;list[i]=x;length++;}}voidSeqList::SLInsert(inti,DataTypex){intk;if(length>=MaxSize)cout<<"表已滿,無法插入!"<<endl;elseif(i<0||i>length)cout<<"參數(shù)i不合理!"<<endl;else{for(k=length;k>i;k--){list[k]=list[k-1];}list[i]=list[i-1];list[i-1]=x;length++;}}voidSeqList::SLDelete(inti){intk;if(!SLIsEmpty())cout<<"表已空,無法刪除!"<<endl;elseif(i<0||i>length)cout<<"參數(shù)i不合理!"<<endl;else{for(k=i-1;k<length;k++)list[k]=list[k+1];length--;}}DataTypeSeqList::SLGet(inti){if(i<0||i>length){cout<<"參數(shù)i不合理!"<<endl;return0;}elsereturnlist[i-1];}intSeqList::SLIsEmpty(){if(length<=0)return0;elsereturn1;}voidSeqList::SLPrint(){if(!SLIsEmpty())cout<<"空表!"<<endl;elsefor(inti=0;i<length;i++)cout<<list[i]<<"";cout<<endl;}DataTypeSeqList::SLSum(){intm=0;for(inti=0;i<length;i++){m=m+list[i];}returnm;}voidmain(){SeqListmylist;inti,n,flag=1,select;DataTypex;cout<<"1.建立線性表\n";cout<<"2.查找\n";cout<<"3.插入\n";cout<<"4.刪除\n";cout<<"5.求和\n";cout<<"6.顯示\n";cout<<"7.退出\n";while(flag){cout<<"請選擇:";cin>>select;switch(select){case1:cout<<"請輸入線性表長度:";cin>>n;mylist.SLCreat(n);cout<<"線性表為:";mylist.SLPrint();break;case2:cout<<"請輸入位置i:";cin>>i;cout<<"第"<<i<<"個位置上的數(shù)值為:"<<mylist.SLGet(i)<<endl;break;case3:cout<<"請輸入要插入元素的位置i和數(shù)值x:";cin>>i>>x;mylist.SLInsert(i,x);mylist.SLPrint();break;case4:cout<<"請輸入要刪除的數(shù)值的位置:";cin>>i;mylist.SLDelete(i);cout<<"刪除后的線性表為:";mylist.SLPrint();break;case5:cout<<"求和的值:"<<mylist.SLSum()<<endl;break;case6:cout<<"線性表為:";mylist.SLPrint();break;case7:flag=0;break;}}}第二題源程序:#include<iostream>#include<malloc.h>#defineFALSE0#defineTRUE1#defineOK1#defineERROR0#defineMaxSize10usingnamespacestd;typedefcharElemType;typedefstructNode{ElemTypedata;Node*next;}Node,*LinkList;intInitList_L(LinkList*L){*L=(LinkList)malloc(sizeof(Node));if(!L)exit(FALSE);(*L)->next=NULL;returnTRUE;}voidqcreate(LinkListL){Node*s;charc;intflag=1;while(flag){c=getchar();if(c!='$'){s=(Node*)malloc(sizeof(Node));s->data=c;s->next=L->next;L->next=s;}elseflag=0;}}voidlength(LinkListL){Node*p;p=L->next;intj=0;while(p!=NULL){p=p->next;j++;}printf("%d",j);printf("\n");}voidprintf(LinkListL){LinkListp;p=L;while(p->next!=NULL){ p=p->next;printf("%c",p->data); }printf("\n");}voidGet(LinkListL,inti){intj;Node*p;p=L;j=0;while((p->next!=NULL)&&(j<i)){p=p->next;j++;}if(i==j)printf("%c",p->data);elseprintf("NULL");printf("\n");}voidGetchar(LinkList&L){charn;cout<<"輸入這個元素:";cin>>n;LinkListp;p=L;while(p->data!=n) {if(p->next==NULL)printf("FALSE");p=p->next; }printf("TRUE");}voidcins(LinkListL,inti,ElemTypex){Node*pre,*s;intk;pre=L;k=0;while(pre!=NULL&&k<i-1){pre=pre->next;k=k+1;}if(!pre){printf("插入位置不合理!");}s=(Node*)malloc(sizeof(Node));s->data=x;s->next=pre->next;pre->next=s;printf("插入成功!鏈表為:");}voiddel(LinkListL,inti){Node*pre,*r;intk;pre=L;k=0;while(pre->next!=NULL&&k<i-1){pre=pre->next;k=k+1;}if(!(pre->next)){printf("刪除結(jié)點(diǎn)的位置i不合理!");}r=pre->next;pre->next=pre->next->next;free(r);printf("成功刪除結(jié)點(diǎn)!鏈表為:");}voidmain(){LinkListL;InitList_L(&L);inte,i;charx;intflag=1;printf("請輸入元素并以$結(jié)束:\n");qcreate(L);printf(L);while(flag){printf("請選擇操作:");printf("\n");printf("1.插入");printf("\n");printf("2.刪除");printf("\n");printf("3.查找");printf("\n");printf("4.求長");printf("\n");printf("5.是否能在表中找到與x相同的數(shù)值");printf("\n");printf("6.顯示");printf("\n");printf("7.退出");cin>>

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論