




已閱讀5頁,還剩3頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、順序表基本操作的實現問題描述 在順序表中查找值為x的元素的位置,在線性表的某個位置插入一個元素,刪除線性表某個位置的元素?;疽?要求建立生成順序表,可以鍵盤上讀取元素,用順序存儲結構實現存儲。實現提示 要實現基本操作,可用實現的基本操作,也可設計簡單的算法實現。建議步驟1)建立順序表的存儲結構;2)利用1)的存儲結構建立有實際數據的數據表;3)實現查找操作;4)實現插入操作;5)實現刪除操作。6)寫出main函數測試上述操作。實驗源碼:#include #define MAX 300typedef int ElemType;typedef structElemType dataMAX;int length;SqList;SqList L;/打印菜單void menu() printf(*n);printf( 順序表操作的驗證實驗n);printf(*n);printf( 1、初始化表n);printf( 2、創建表n);printf( 3、按值查詢n);printf( 4、在指定位置插入一個元素n);printf( 5、刪除指定位置上的一個元素n);printf( 6、輸出表n);printf( 0、退出n);printf(*n);/初始化表,置表長為0void Init(SqList *L)L-length=0;/創建表void Creat(SqList *L)int n,i;printf(請確定表的長度:);scanf(%d,&n);L-length=n;printf(請輸入數據元素:n); for(i=1;idatai);printf(nn按任意任意鍵繼續.n);getch();/顯示列表void PrintL(SqList *L)int i;if(L-length=0)printf(空表,請首先創建表!n);elseprintf(n當前表元素是:n);for(i=1;ilength;i+)printf(%d ,L-datai);if(i%10=0) printf(n);printf(n);printf(nn按任意任意鍵繼續.n);getch();/按值查詢void Search(SqList *L)int i,x;printf(請輸入要查詢元素的值:);scanf(%d,&x);for(i=1;ilength&L-datai!=x;i+);if(ilength)printf(n元素%d第一次出現在表中第%d個位置上!n,x,i);else printf(n表中沒有元素 %d !n,x);printf(n);printf(nn按任意任意鍵繼續.n);getch();/在指定位置上插入一個元素void Insert(SqList *L)int i,j,x;printf(請確定要插入的位置:);scanf(%d,&i); printf(請輸入要插入的元素值:);scanf(%d,&x);if(L-lengthMAX)printf(表滿!n);return;if(iL-length+1)printf(位置錯!n);elsefor(j=L-length;j=i;j-)L-dataj+1=L-dataj;L-datai=x;L-length+; PrintL(L);printf(nn插入成功!按任意任意鍵繼續.n);getch();/刪除指定位置上的一個元素void Del(SqList *L)int i,j;printf(請確定要刪除元素的位置:);scanf(%d,&i);if(L-length=0)printf(空表!n);elseif(iL-length)printf(位置錯!n);elsefor(j=i+1;jlength;j+)L-dataj-1 = L-dataj;L-length-; PrintL(L);printf(nn刪除成功!按任意任意鍵繼續.n);getch();main()int t;while(1)system(cls);menu();printf(請選擇一個操作:);scanf(%d,&t);switch(t)case 1: Init(&L);break;case 2: Creat(&L);break;case 3: Search(&L);break;case 4: Insert(&L);break;case 5: Del(&L);break;case 6: PrintL(&L);break;case 0:exit(0);default:printf(輸入錯誤!請按任意鍵繼續.n); getchar();運行截圖:2、有序順序表的合并問題描述 已知順序表la和lb中的數據元素按非遞減有序排列,將la和lb表中的數據元素,合并成為一個新的順序表lc。基本要求 lc中的數據元素仍按非遞減有序排列,并且不破壞la和lb表。實驗源碼:#include #define MAX 200typedef int ElemType;typedef structElemType dataMAX;int length;SqList;SqList La,Lb,Lc;/初始化表void Init_List(SqList *L)L-length=0;/創建表void Creat_List(SqList *L)int n,i;printf(請確定表的長度:);scanf(%d,&n);L-length=n;printf(請輸入數據元素:n); for(i=1;idatai);/輸出表void Print_List(SqList *L)int i;if(L-length=0)printf(空表,請首先創建表!n);elseprintf(n當前表元素是:n);for(i=1;ilength;i+)printf(%d ,L-datai);if(i%10=0) printf(n);printf(n);/從表中取值void GetElem(SqList *L,int i,ElemType *e)if(i=1&ilength)*e=L-datai;/插入:void Insert_List(SqList *L,int i,ElemType e)int j;if(L-lengthMAX)printf(表滿!n);return;if(iL-length+1)printf(位置錯!n);elsefor(j=L-length;j=i;j-)L-dataj+1=L-dataj;L-datai=e;+L-length;/合成新表void MergeList()int i,j;ElemType ai,bj;int k=0;i=j=1; while (i=La.length)&(j=Lb.length) / La和Lb均非空 GetElem(&La,i,&ai); GetElem(&Lb,j,&bj); if (ai=bj) Insert_List(&Lc,+k,ai); +i; else Insert_List(&Lc,+k,bj); +j; while (i=La.length)GetElem(&La, i+, &ai);Insert_List(&Lc, +k,ai); while (j=Lb.length) GetElem(&Lb,j+,&bj);Insert_List(&Lc,+k,bj); Lc.length=La.length+Lb.length; / merge_list
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 兒童語言發展教育工作計劃
- 五年級音樂課程教學創新計劃
- 2025北師大版九年級數學家長溝通計劃
- 殘疾兒童語言發展教育計劃
- 五年級下學期體育活動促進計劃
- 小學一年級下學期戶外運動教學計劃
- 高三語文備課組下學期師生互動計劃
- 幼兒園語言發展銜接工作計劃
- 數學知識遷移與應用計劃
- 2025年家庭文化建設計劃
- 建筑史智慧樹知到期末考試答案2024年
- Unit8GreenLiving單元教學設計高中英語北師大版
- 籃球競賽組織編排
- 超聲危急值課件
- 米家智能家居設計方案
- 蘋果產業的財務分析報告
- 數獨題目大全與答案
- 2024年安徽合肥通航控股有限公司招聘筆試參考題庫含答案解析
- 刑事案件模擬法庭劇本完整版五篇
- 東風EQ1092F型汽車分動器的設計
- 小主持人社團教案
評論
0/150
提交評論