




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實驗二 順序表的建立及基本操作方法實現(xiàn)實驗預(yù)備知識:1熟練運用指針進(jìn)行程序設(shè)計,掌握結(jié)構(gòu)體指針。2掌握使用結(jié)構(gòu)體指針訪問結(jié)構(gòu)體變量。3掌握指針作為函數(shù)的參數(shù)使用。一、實驗?zāi)康?. 理解和掌握線性表的類型定義方法。2. 掌握順序表中的基本運算,包括順序表的創(chuàng)建、元素的添加、刪除,判空及判滿等基本操作。二、實驗要求(本次實驗要求上交)【題目1】-驗證型以下順序表的基本操作已經(jīng)給出,請進(jìn)行驗證。源程序見附錄部分測試數(shù)據(jù):10 20請將源程序附錄于此:#include<stdio.h>#include<stdlib.h>#define LIST_INIT_SIZE 100#de
2、fine Icreament 20typedef int ElemType; /用戶自定義數(shù)據(jù)元素類型typedef struct ElemType *elem; /順序表的基地址 int length; /順序表的當(dāng)前長度int listsize; /預(yù)設(shè)空間容量SqList; /線性表的順序存儲結(jié)構(gòu)SqList* InitList() /創(chuàng)建空的順序表 SqList* L = (SqList*)malloc(sizeof(SqList);/定義順序表L if(!L) printf("空間劃分失敗,程序退出n"); return NULL; L->elem=(Ele
3、mType *)malloc(LIST_INIT_SIZE*sizeof(ElemType); if(!L->elem) printf("空間劃分失敗,程序退出n"); return NULL; L->length=0; L->listsize=LIST_INIT_SIZE; return L;int CreateList(SqList* L) /創(chuàng)建順序表(非空) int number; /順序表中元素的個數(shù) int i; /循環(huán)變量 printf("請輸入插入元素的個數(shù):"); scanf("%d",&n
4、umber); if(number > LIST_INIT_SIZE) /一定要判斷輸入的個數(shù)是否大于順序表的最大長度 printf("輸入個數(shù)大于順序表的長度n"); return 0; for(i=0;i<number;i+) printf("輸入第%d個數(shù): ",i+1); scanf("%d",L->elem+i); /L->elem+i:每次的輸入都保存在順序表元素中的下一個地址,而不是一直放在元素的首地址 /給順序表中每個數(shù)據(jù)元素賦值L->length=number; /當(dāng)前順序表的長度 re
5、turn 1;void print(SqList* L) /輸出當(dāng)前順序表 int i; printf("輸出:n"); for(i=0;i<L->length;i+) printf("第%d個數(shù):%-3dn",i+1,*(L->elem + i); /L->elem+i:和輸入是一個道理 printf("順序表長度為:%dn", L->length); printf("n");int main() SqList* L = InitList(); /申請一個指向順序表的指針,并對其初始
6、化 if(!L) /判斷申請是否成功 printf("初始化線性表失敗n"); return 1; if(!CreateList(L) /判斷創(chuàng)建順序表是否成功 printf("創(chuàng)建順序表失敗n"); return 1; print(L); /打印順序表 free(L->elem); /釋放申請的順序表元素的內(nèi)存 free(L); /釋放申請的順序表內(nèi)存 return 0;請將運行結(jié)果圖附錄于此【題目2】(1) 有一個表元素按值遞增排列的順序表,編寫一個函數(shù)實現(xiàn)刪除順序表中多余的值相同元素(2) 有一個順序表,編寫一個在順序表中查找最大和最小值元素
7、的函數(shù),并分析其時間復(fù)雜度算法分析:問題1:輸入元素的個數(shù)問題2:排序的次數(shù)請將源程序附錄于此:#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct ArrListint *arr;int length;List;List *Init(int n) List *L=(List*)malloc(sizeof(List);L->arr=(int *)malloc(sizeof(int)*n);L->length=0;return L;/輸入元素 void input(L
8、ist *L,int n) int i; int x; printf("請輸入%d個數(shù)n",n); for(i=0;i<n;i+) while(!(scanf("%d",&x) printf("輸入錯誤請重新輸入!n"); scanf("%*cn"); scanf("%*c"); L->arri=x; +L->length; /輸出元素 void display(List *L,int n)int i; for(i=0;i<n;i+) printf("第
9、%d一個元素是;%dn",i+1,L->arri); /順序表的清空void clearList(List *L) free(L->arr);L->length=0;free(L);L=NULL;/元素長度 int ListLength(List *L)return L->length;/對元素排序 void swap(List *L)int i;for(i=0;i<L->length;i+)if(L->arri>L->arri+1&&i+1!=L->length)int temp=L->arri;L-
10、>arri=L->arri+1;L->arri+1=temp;/刪除重復(fù)元素 void DelList(List *L) int i=0;int n=0;for(i=0;i<L->length;i+)if(L->arri=L->arri+1)n=i;while(n<L->length)L->arrn=L->arrn+1;n+; -L->length;/輸出最大最小元素 void maxmin(List *L) int min=L->arr0; int max=L->arr0; int i; for(i=1;i&
11、lt;L->length;i+) if(min>L->arri) min=L->arri; if(max<L->arri) max=L->arri; printf("最大元素是;%dn最小元素是;%dn",max,min);int main()int n;printf("請輸入插入元素的個數(shù):");scanf("%d",&n);List *L=Init(n);input(L,n);display(L,n);swap(L);printf("順序表長度是;%dn",L->length); DelList(L); display(L,L->length); printf("順序表長度是;%dn",L->length);maxmin(
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年漳州危運駕駛員考試題
- 2025年重慶客運從業(yè)資格證考試試題庫答案大全解析
- 某咨詢魯能物資集團(tuán)公司戰(zhàn)略咨詢報告
- 描述成長的經(jīng)歷作文7篇
- 醫(yī)學(xué)遺傳學(xué)遺傳病研究試卷分析題目集合
- 品牌建設(shè)與合作協(xié)議書
- 公司出資證明書與股東出資詳表(6篇)
- 2025年配氣機(jī)構(gòu):進(jìn)排氣門項目申請報告
- 網(wǎng)絡(luò)安全維護(hù)與保障協(xié)議條款
- 2025年注冊稅務(wù)師稅法一模擬試卷:歷年真題與實戰(zhàn)應(yīng)用
- 輸血相關(guān)法律法規(guī)及流程
- “五育”融合背景下小學(xué)數(shù)學(xué)教學(xué)策略探究
- 2025部編版二年級(下)期末測試語文試卷(附答案)
- 低空具身智能頻譜管控的研究
- 2025年天津市專業(yè)人員繼續(xù)教育試題及答案3
- 北京八中分班數(shù)學(xué)試卷
- 化工生產(chǎn)班組管理
- 臨床膽汁酸檢測
- 工傷保險待遇申請表
- 《酒店禮儀知識培訓(xùn)》課件
- 腦挫傷病因介紹
評論
0/150
提交評論