順序表基本操作的實現(xiàn).doc_第1頁
順序表基本操作的實現(xiàn).doc_第2頁
順序表基本操作的實現(xiàn).doc_第3頁
順序表基本操作的實現(xiàn).doc_第4頁
順序表基本操作的實現(xiàn).doc_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、順序表基本操作的實現(xiàn)問題描述 在順序表中查找值為x的元素的位置,在線性表的某個位置插入一個元素,刪除線性表某個位置的元素?;疽?要求建立生成順序表,可以鍵盤上讀取元素,用順序存儲結(jié)構(gòu)實現(xiàn)存儲。實現(xiàn)提示 要實現(xiàn)基本操作,可用實現(xiàn)的基本操作,也可設(shè)計簡單的算法實現(xiàn)。建議步驟1)建立順序表的存儲結(jié)構(gòu);2)利用1)的存儲結(jié)構(gòu)建立有實際數(shù)據(jù)的數(shù)據(jù)表;3)實現(xiàn)查找操作;4)實現(xiàn)插入操作;5)實現(xiàn)刪除操作。6)寫出main函數(shù)測試上述操作。實驗源碼:#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、創(chuàng)建表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;/創(chuàng)建表void Creat(SqList *L)int n,i;printf(請確定表的長度:);scanf(%d,&n);L-length=n;printf(請輸入數(shù)據(jù)元素:n); for(i=1;idatai);printf(nn按任意任意鍵繼續(xù).n);getch();/顯示列表void PrintL(SqList *L)int i;if(L-length=0)printf(空表,請首先創(chuàng)建表!n);elseprintf(n當(dāng)前表元素是:n);for(i=1;ilength;i+)printf(%d ,L-datai);if(i%10=0) printf(n);printf(n);printf(nn按任意任意鍵繼續(xù).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第一次出現(xiàn)在表中第%d個位置上!n,x,i);else printf(n表中沒有元素 %d !n,x);printf(n);printf(nn按任意任意鍵繼續(xù).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插入成功!按任意任意鍵繼續(xù).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刪除成功!按任意任意鍵繼續(xù).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(輸入錯誤!請按任意鍵繼續(xù).n); getchar();運行截圖:2、有序順序表的合并問題描述 已知順序表la和lb中的數(shù)據(jù)元素按非遞減有序排列,將la和lb表中的數(shù)據(jù)元素,合并成為一個新的順序表lc?;疽?lc中的數(shù)據(jù)元素仍按非遞減有序排列,并且不破壞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;/創(chuàng)建表void Creat_List(SqList *L)int n,i;printf(請確定表的長度:);scanf(%d,&n);L-length=n;printf(請輸入數(shù)據(jù)元素:n); for(i=1;idatai);/輸出表void Print_List(SqList *L)int i;if(L-length=0)printf(空表,請首先創(chuàng)建表!n);elseprintf(n當(dāng)前表元素是: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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論