




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)二 順序表的建立及基本操作方法實(shí)現(xiàn)實(shí)驗(yàn)預(yù)備知識(shí):1熟練運(yùn)用指針進(jìn)行程序設(shè)計(jì),掌握結(jié)構(gòu)體指針。2掌握使用結(jié)構(gòu)體指針訪問結(jié)構(gòu)體變量。3掌握指針作為函數(shù)的參數(shù)使用。一、實(shí)驗(yàn)?zāi)康?. 理解和掌握線性表的類型定義方法。2. 掌握順序表中的基本運(yùn)算,包括順序表的創(chuàng)建、元素的添加、刪除,判空及判滿等基本操作。二、實(shí)驗(yàn)要求(本次實(shí)驗(yàn)要求上交)【題目1】-驗(yàn)證型以下順序表的基本操作已經(jīng)給出,請(qǐng)進(jìn)行驗(yàn)證。源程序見附錄部分測(cè)試數(shù)據(jù):10 20請(qǐng)將源程序附錄于此:#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)前長(zhǎng)度int listsize; /預(yù)設(shè)空間容量SqList; /線性表的順序存儲(chǔ)結(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; /順序表中元素的個(gè)數(shù) int i; /循環(huán)變量 printf("請(qǐng)輸入插入元素的個(gè)數(shù):"); scanf("%d",&n
4、umber); if(number > LIST_INIT_SIZE) /一定要判斷輸入的個(gè)數(shù)是否大于順序表的最大長(zhǎng)度 printf("輸入個(gè)數(shù)大于順序表的長(zhǎng)度n"); return 0; for(i=0;i<number;i+) printf("輸入第%d個(gè)數(shù): ",i+1); scanf("%d",L->elem+i); /L->elem+i:每次的輸入都保存在順序表元素中的下一個(gè)地址,而不是一直放在元素的首地址 /給順序表中每個(gè)數(shù)據(jù)元素賦值L->length=number; /當(dāng)前順序表的長(zhǎng)度 re
5、turn 1;void print(SqList* L) /輸出當(dāng)前順序表 int i; printf("輸出:n"); for(i=0;i<L->length;i+) printf("第%d個(gè)數(shù):%-3dn",i+1,*(L->elem + i); /L->elem+i:和輸入是一個(gè)道理 printf("順序表長(zhǎng)度為:%dn", L->length); printf("n");int main() SqList* L = InitList(); /申請(qǐng)一個(gè)指向順序表的指針,并對(duì)其初始
6、化 if(!L) /判斷申請(qǐng)是否成功 printf("初始化線性表失敗n"); return 1; if(!CreateList(L) /判斷創(chuàng)建順序表是否成功 printf("創(chuàng)建順序表失敗n"); return 1; print(L); /打印順序表 free(L->elem); /釋放申請(qǐng)的順序表元素的內(nèi)存 free(L); /釋放申請(qǐng)的順序表內(nèi)存 return 0;請(qǐng)將運(yùn)行結(jié)果圖附錄于此【題目2】(1) 有一個(gè)表元素按值遞增排列的順序表,編寫一個(gè)函數(shù)實(shí)現(xiàn)刪除順序表中多余的值相同元素(2) 有一個(gè)順序表,編寫一個(gè)在順序表中查找最大和最小值元素
7、的函數(shù),并分析其時(shí)間復(fù)雜度算法分析:?jiǎn)栴}1:輸入元素的個(gè)數(shù)問題2:排序的次數(shù)請(qǐng)將源程序附錄于此:#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("請(qǐng)輸入%d個(gè)數(shù)n",n); for(i=0;i<n;i+) while(!(scanf("%d",&x) printf("輸入錯(cuò)誤請(qǐng)重新輸入!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一個(gè)元素是;%dn",i+1,L->arri); /順序表的清空void clearList(List *L) free(L->arr);L->length=0;free(L);L=NULL;/元素長(zhǎng)度 int ListLength(List *L)return L->length;/對(duì)元素排序 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("請(qǐng)輸入插入元素的個(gè)數(shù):");scanf("%d",&n);List *L=Init(n);input(L,n);display(L,n);swap(L);printf("順序表長(zhǎng)度是;%dn",L->length); DelList(L); display(L,L->length); printf("順序表長(zhǎng)度是;%dn",L->length);maxmin(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥品試劑安全管理制度
- 藥品門診統(tǒng)籌管理制度
- 藥店單向通道管理制度
- 藥店生活日常管理制度
- 菜鳥驛站人員管理制度
- 設(shè)備事故處罰管理制度
- 設(shè)備堆放倉(cāng)庫(kù)管理制度
- 設(shè)備工裝模具管理制度
- 設(shè)備校外存放管理制度
- 設(shè)備監(jiān)理公司管理制度
- 《自動(dòng)控制原理》張愛民課后習(xí)題答案解析
- SYT 6587-2021 電子式井斜儀校準(zhǔn)方法-PDF解密
- MOOC 企業(yè)文化與商業(yè)倫理-東北大學(xué) 中國(guó)大學(xué)慕課答案
- 2024年浙江紹興市高速公路運(yùn)營(yíng)管理有限公司招聘筆試參考題庫(kù)含答案解析
- 幸福人生養(yǎng)老專題-課件
- 感染性疾病科崗前培訓(xùn)
- 山東省高考志愿規(guī)劃
- 教科版科學(xué)四年級(jí)下冊(cè)全冊(cè)單元復(fù)習(xí)教案
- 外墻吊籃安全專項(xiàng)施工方案
- 等高線地形圖試題附答案解析
- 思維可視化工具在英語(yǔ)教學(xué)中的應(yīng)用探究 論文
評(píng)論
0/150
提交評(píng)論