




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗二 順序表的建立及基本操作方法實現(xiàn)實驗預(yù)備知識:1熟練運用指針進行程序設(shè)計,掌握結(jié)構(gòu)體指針。2掌握使用結(jié)構(gòu)體指針訪問結(jié)構(gòu)體變量。3掌握指針作為函數(shù)的參數(shù)使用。一、實驗?zāi)康?. 理解和掌握線性表的類型定義方法。2. 掌握順序表中的基本運算,包括順序表的創(chuàng)建、元素的添加、刪除,判空及判滿等基本操作。二、實驗要求(本次實驗要求上交)【題目1】-驗證型以下順序表的基本操作已經(jīng)給出,請進行驗證。源程序見附錄部分測試數(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; /順序表的當前長度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; /當前順序表的長度 re
5、turn 1;void print(SqList* L) /輸出當前順序表 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一盔一帶交通安全教育講話稿
- 年產(chǎn)200噸高端醫(yī)藥原料藥生產(chǎn)項目建議書(模板)
- 老舊供水系統(tǒng)改進工程可行性研究報告(參考模板)
- 大專幼兒文學(xué)兒歌課件
- 重慶市烏江新高考協(xié)作體2024屆高三上學(xué)期期中考政治含解析
- 貴州體育職業(yè)學(xué)院《單片機原理與設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江特殊教育職業(yè)學(xué)院《光接入技術(shù)與數(shù)字通信課程實訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘇州城市學(xué)院《口腔影像診斷學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西青年職業(yè)學(xué)院《先進制造與特種加工》2023-2024學(xué)年第二學(xué)期期末試卷
- 石嘴山工貿(mào)職業(yè)技術(shù)學(xué)院《水質(zhì)工程學(xué)Ⅰ(水廠)》2023-2024學(xué)年第二學(xué)期期末試卷
- Unit+2+Lesson+3+Getting+To+The+Top-高中英語北師大版選擇性必修第一冊+
- 《銷售技巧課件:提高銷售額的12種方法》
- 果蔬汁簡介介紹
- 廣東御景木業(yè)有限公司年產(chǎn)木質(zhì)門8萬套建設(shè)項目環(huán)境影響報告書
- 開具無前科證明申請書
- 鉆孔灌注樁打樁記錄表
- 高齡老人租房免責協(xié)議
- 展位搭建施工方案模板圖
- 唯識二十論述記講記(完整版)-智敏上師
- WK-arbitration培訓(xùn)-中山大學(xué)法學(xué)院課件
- 水資源稅納稅申報表附表
評論
0/150
提交評論