數(shù)據(jù)結(jié)構(gòu)實驗報告-順序表的創(chuàng)建、遍歷及有序合并操作_第1頁
數(shù)據(jù)結(jié)構(gòu)實驗報告-順序表的創(chuàng)建、遍歷及有序合并操作_第2頁
數(shù)據(jù)結(jié)構(gòu)實驗報告-順序表的創(chuàng)建、遍歷及有序合并操作_第3頁
數(shù)據(jù)結(jié)構(gòu)實驗報告-順序表的創(chuàng)建、遍歷及有序合并操作_第4頁
數(shù)據(jù)結(jié)構(gòu)實驗報告-順序表的創(chuàng)建、遍歷及有序合并操作_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)結(jié)構(gòu)實驗報告-順序表的創(chuàng)建、遍歷及有序合并操作二、實驗內(nèi)容與步驟實現(xiàn)順序表的創(chuàng)建、遍歷及有序合并操作,基本數(shù)據(jù)結(jié)構(gòu)定義如下:typedef int ElemType;#define MAXSIZE 100#define FALSE 0#define TRUE 1typedef structElemType dataMAXSIZE;int length;seqlist;創(chuàng)建順序表,遍歷順序表#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100#define Icreament 20#define FALSE 0#

2、define TRUE 1typedef int曰emType;用戶自定義數(shù)據(jù)元素類型順序表結(jié)構(gòu)體的定義typedef structElemType *elem;順序表的基地址int length;順序表的當前長度int listsize;預(yù)設(shè)空間容量SqList;線性表的順序存儲結(jié)構(gòu)SqList* InitList()創(chuàng)建空的順序表SqList* L = (SqList*)malloc(sizeof(SqList); 定義順序 表Lif(!L)printf("空間劃分失敗,程序退出n");return NULL;L->elem=(ElemType*)malloc(M

3、AXSIZE*sizeof(ElemType);if(!L->elem)printf("空間劃分失敗,程序退出n");return NULL;L->length=0;L->listsize=MAXSIZE;return L;int CreateList(SqList* L)/創(chuàng)建順序表(非空)int number; 順序表中元素的個數(shù)int i; 循環(huán)變量printf("請輸入順序表中元素的個數(shù):");scanf("%d”,&number);if(number > MAXSIZE)一定要判斷輸入的個數(shù)是否大于順序

4、表的最大長度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;當前順序表的長度return 1;void print(SqList* L)遍歷順序表int i;printf("'n開始遍歷順序表n"

5、);for(i=0;i<L->length;i+)printf("%d”,*(L->elem + i); /L->elem+i :和輸入是一個道理printf("n 遍歷結(jié)束 n");printf("n");int main()SqList* L = InitList();申請一個指向順序表的指針,并對其初始化if(!L)判斷申請是否成功printf("初始化線性表失敗n");return 1;if(!CreateList(L)判斷創(chuàng)建順序表是否成功printf("創(chuàng)建順序表失敗n"

6、;);return 1;print(L);打印順序表與上面遍歷順序表相對應(yīng),若沒有就不遍歷free(L->elem);釋放申請的順序表元素的內(nèi)存free(L); 釋放申請的順序表內(nèi)存return 0;資料.開始遍歷順序表5 AA 9 12 1B 3 57遍歷結(jié)束Press any *09 to continue-7T4 2 0 7-r S 4 ? 1 1 3 SX第第第第第第第表的有序合并#include <stdio.h>#include <stdlib.h>#define MAXSIZE 100typedef int ElemType;順序表結(jié)構(gòu)體的定義typ

7、edef structElemType dataMAXSIZE;int size;seqlist;函數(shù)聲明void init(seqlist *slt);void display(seqlist slt);void sort(seqlist *s);void combine( seqlist *s1 ,seqlist *s2 ,seqlist *s3);順序表的初始化函數(shù)void init(seqlist *slt)slt->size=0 ;順序表的顯示函數(shù)void display(seqlist slt)int i;if(!slt.size)printf("n順序表為空&qu

8、ot;);elsefor(i=0;i<slt.size;i+)printf("n%d'n",slt.datai);順序表排序void sort(seqlist *s)int i ;int j ;int temp ;for(i=0;i<s->size-1;i+)for(j=i+1;j<s->size;j+)if(s->datai>=s->dataj)temp=s->datai;s->datai=s->dataj;s->dataj=temp;兩個有序順序表連接函數(shù)void combine(seqli

9、st *s1 , seqlist *s2 , seqlist *s3 )int i=0 ;int j=0 ;int k=0 ;while( i < s1->size && j < s2->size)if(s1->datai<=s2->dataj)s3->datak=s1->datai;i+;elses3->datak=s2->dataj;j+;k+;if(i=s1->size)(while(j<s2->size)(s3->datak=s2->dataj;k+;j+;if(j=s2-&

10、gt;size)(while(i<s1->size)(s3->datak=s1->datai;k+;i+;s3->size=k;主函數(shù)int main()int i ;int j ;int x ;int n ;seqlist listl ;seqlist list2 ;seqlist list3 ;init(&list1);printf("第一個順序表元素個數(shù):n");scanf("%d" ,&n);printf("第一個順序表輸入:n");for(i=0 ; i<n ; i+)sc

11、anf("%d”,&list1.datai);list1.size+ ;sort(&list1);/ 第一個表排序init(&list2);printf("第二個順序表元素個數(shù):n");scanf("%d" ,&n);printf("第二個順序表輸入:n");for(i=0 ; i<n ; i+)scanf("%d”,&list2.datai);list2.size+ ;sort(&list2);/ 第二個表排序init(&list3);combine(&list1 ,&list2

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論