




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、、實驗?zāi)康?、掌握線性表中元素的前驅(qū)、后續(xù)的概念。2、掌握順序表與鏈表的建立、插入元素、刪除表中某元素的算法。3、對線性表相應(yīng)算法的時間復(fù)雜度進行分析。4、理解順序表、鏈表數(shù)據(jù)結(jié)構(gòu)的特點(優(yōu)缺點) 。二、實驗預(yù)習(xí)說明以下概念1、線性表:2、順序表:3、鏈表:三、實驗內(nèi)容和要求1、閱讀下面程序,在橫線處填寫函數(shù)的基本功能。并運行程序,寫出結(jié)果。#include<>#include<># define ERROR 0# define OK 1初始分配的順序表長度*/溢出時,順序表長度的增量*/定義表元素的類型*/存儲空間的基地址*/順序表的當(dāng)前長度*/當(dāng)前分配的存儲空間*/
2、# define INIT_SIZE 5 /* #define INCREM 5/*typedef int ElemType; /* typedef struct SqlistElemType *slist; /* int length; /* int listsize; /* Sqlist;int InitList_sq(Sqlist *L); /*構(gòu)造一個空的線性表L*/int CreateList_sq(Sqlist *L,int n); /*構(gòu)造順序表的長度為n */int ListInsert_sq(Sqlist *L,int i,ElemTypee);/* 在 L 中第 i 個位置
3、之前插入新的數(shù)據(jù)元素e, L的長度加1*/int PrintList_sq(Sqlist *L); /*輸出順序表的元素 */int ListDelete_sq(Sqlist *L,int i); /*刪除第 i 個元素 */int ListLocate(Sqlist *L,ElemType e); /*查找值為 e 的元素 */ int InitList_sq(Sqlist *L)L->slist=(ElemType*)malloc(INIT_SIZE*sizeof(ElemType);if(!L->slist) return ERROR;L->length=0;L->
4、;listsize=INIT_SIZE;return OK;/*InitList*/int CreateList_sq(Sqlist *L,int n)ElemType e;int i;for(i=0;i<n;i+)printf("input data %d",i+1);scanf("%d",&e);if(!ListInsert_sq(L,i+1,e)return ERROR;return OK;/*CreateList*/*輸出順序表中的元素*/int PrintList_sq(Sqlist *L)int i;for(i=1;i<=
5、L->length;i+)printf("%5d",L->slisti-1);return OK;/*PrintList*/int ListInsert_sq(Sqlist *L,int i,ElemType e)int k;if(i<1|i>L->length+1)return ERROR;if(L->length>=L->listsize)L->slist=(ElemType*)realloc(L->slist,(INIT_SIZE+INCREM)*sizeof(ElemType);if(!L->slis
6、t)return ERROR;L->listsize+=INCREM;for(k=L->length-1;k>=i-1;k-)L->slistk+1= L->slistk;L->slisti-1=e;L->length+;return OK;/*ListInsert*/ /*在順序表中刪除第i個元素*/ int ListDelete_sq(Sqlist *L,int i)/*在順序表中查找指定值元素,返回其序號 */int ListLocate(Sqlist *L,ElemType e)int main()Sqlist sl;int n,m,k;pri
7、ntf("please input n:"); /*輸入順序表的元素個數(shù)*/scanf("%d",&n);if(n>0)printf("n1-Create Sqlist:n");InitList_sq(&sl);CreateList_sq(&sl,n);printf("n2-Print Sqlist:n");PrintList_sq(&sl);printf("nplease input insert location and data:(location,data)n
8、");scanf("%d,%d",&m,&k);ListInsert_sq(&sl,m,k);printf("n3-Print Sqlist:n");PrintList_sq(&sl);printf("n");)elseprintf("ERROR");return 0;)運行結(jié)果算法分析調(diào)用ListInsert_sq() 函數(shù),進行插入操作,并輸出插入新元素后的狀態(tài),時間復(fù)雜度,空間復(fù)雜度較少,2、為第1題補充刪除和查找功能函數(shù),并在主函數(shù)中補充代碼驗證算法的正確性。 刪除
9、算法代碼:int ListDelete_sq(Sqlist *L,int i) int p;if(i<1|i>L->length)return ERROR;for(p=i-1;p<L->length-1;p+)L->slistp=L->slistp+1;L->length -;return OK;運行結(jié)果算法分析主函數(shù)調(diào)用ListDelete_sq 實現(xiàn)刪除操作,在輸出刪除之后的線性表,時間復(fù)雜度低查找算法代碼:int ListLocate(Sqlist *L,ElemType e)int i=0;while(i<=L->length
10、) && (L->slist i!=e)i+;if(i<=L->length )return (i+1);elsereturn -1;運行結(jié)果算法分析主函數(shù)通過調(diào)用ListLocate 實現(xiàn)查找功能,然后輸出查找元素的序號,時間復(fù)雜度低3、閱讀下面程序,在橫線處填寫函數(shù)的基本功能。并運行程序,寫出結(jié)果。#include<>#include<>#define ERROR 0#define OK 1typedef int ElemType;/*定義表元素的類型 */typedef struct LNode /*線性表的單鏈表存儲 */Ele
11、mType data;struct LNode *next;LNode,*LinkList;LinkList CreateList(int*/void PrintList(LinkList L); /*int GetElem(LinkList L,int替換成e */n);/* 構(gòu)造順序表的長度為 n輸出帶頭結(jié)點單鏈表的所有元素*/i,ElemType *e); /* 在順序表 L中,將第i個元素存在時,LinkList CreateList(int n)LNode *p,*q,*head;int i;head=(LinkList)malloc(sizeof(LNode); p=head;fo
12、r(i=0;i<n;i+)q=(LinkList)malloc(sizeof(LNode); scanf("%d",&q->data); /* q->next=NULL;/*p->next=q;/*p=q; return head; /*CreateList*/void PrintList(LinkList L) LNode *p;head->next=NULL;printf("input data %i:",i+1);輸入元素值*/結(jié)點指針域置空*/新結(jié)點連在表末尾*/p=L->next; /*p指向單鏈表的
13、第1個元素*/while(p!=NULL)printf("%5d",p->data);p=p->next;/*PrintList*/int GetElem(LinkList L,int i,ElemType *e)LNode *p;int j=1;p=L->next;while(p&&j<i) p=p->next;j+;if(!p|j>i)return ERROR;*e=p->data;return OK;/*GetElem*/int main()int n,i;ElemType e;LinkList L=NULL;
14、/*定義指向單鏈表的指針 */printf("please input n:"); /*輸入單鏈表的元素個數(shù) */scanf("%d",&n);if(n>0)printf("n1-Create LinkList:n");L=CreateList(n);printf("n2-Print LinkList:n");PrintList(L);printf("n3-GetElem from LinkList:n");printf("input i=");scanf(&q
15、uot;%d",&i);if(GetElem(L,i,&e)printf("No%i is %d",i,e);elseprintf("not exists");elseprintf("ERROR");return 0;運行結(jié)果算法分析主函數(shù)調(diào)用GetElem函數(shù)實現(xiàn)輸出序號所對應(yīng)的元素,時間復(fù)雜度低4、為第3題補充插入功能函數(shù)和刪除功能函數(shù)。并在主函數(shù)中補充代碼驗證算法的正確性。插入算法代碼:int ListInsert_sq(LNode *L,int i,ElemType e)int k;if(i<1
16、|i>L->length+1)return ERROR;if(L->length>=L->listsize)L->data =(ElemType*)realloc(L->data, (INIT_SIZE+INCREM)*sizeof(ElemType);if(!L->data)return ERROR;L->listsize+=INCREM;for(k=L->length-1;k>=i-1;k-)L->datak+1= L->datak; L->slisti-1=e;L->length+;return OK;/*ListInsert*/運行結(jié)果算法分析調(diào)用ListInsert_sq() 函數(shù),進行插入操
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 七臺河職業(yè)學(xué)院《固定義齒工藝技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 南京農(nóng)業(yè)大學(xué)《兒童行為觀察與分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣西外國語學(xué)院《制藥工藝學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 西北師范大學(xué)《抽樣技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 齊魯工業(yè)大學(xué)《農(nóng)藥加工》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州電力高等??茖W(xué)校《中藥炮制學(xué)B》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025至2030高爾夫練習(xí)場行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 河南應(yīng)用技術(shù)職業(yè)學(xué)院《臨床藥理學(xué)(醫(yī)學(xué)檢驗)》2023-2024學(xué)年第一學(xué)期期末試卷
- 安徽廣播影視職業(yè)技術(shù)學(xué)院《新時期文學(xué)現(xiàn)象》2023-2024學(xué)年第一學(xué)期期末試卷
- 徐州醫(yī)科大學(xué)《熱力系統(tǒng)設(shè)計與實踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 植物細胞的分子生物學(xué)研究-深度研究
- 兒童專注力訓(xùn)練300題可打印
- DeepSeek零基礎(chǔ)到精通手冊(保姆級教程)
- 2025年度工業(yè)園區(qū)物業(yè)管理及服務(wù)收費標(biāo)準(zhǔn)及細則
- 2024-2030年中國橋梁管理與養(yǎng)護市場調(diào)查研究及發(fā)展趨勢分析報告
- 《施工現(xiàn)場安全用電》課件
- 新公路波形護欄打樁機安全操作規(guī)程
- 小學(xué)四年級下冊四則混合運算及簡便運算
- 國家開放大學(xué)本科《商務(wù)英語4》一平臺機考真題及答案(第四套)
- 山東第一醫(yī)科大學(xué)英語4(本)期末復(fù)習(xí)題
- 2025三方借款中介合同范本
評論
0/150
提交評論