試驗二線性表_第1頁
試驗二線性表_第2頁
試驗二線性表_第3頁
試驗二線性表_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、一、實驗目的1 , 了解線性表的邏輯結構特性,以及這種特性在計算機內的兩種存儲結構。2 .重點是線性表的基本操作在兩種存儲結構上的實現;本次實驗以順序存儲的操作為 側重點;并進一步學習結構化的程序設計方法。二、實例1. 線性表的順序存儲表示(結構)及實現。閱讀下列程序請注意幾個問題:(1)關于線性表的順序存儲結構的本質是:在邏輯上相鄰的兩個數據元素ai-i, ai,在存儲地址中也是相鄰的,既地址連續。不同的教材有不同的表示,有的直接采用一維數組, 這種方法有些過時。有的采用含動態分配一維數組的結構體,這種方法過于靈活抽象(對 讀者要求過高)。我們采用的是含靜態一維數組和線性表長的結構體:typ

2、edef struct ElemType aMAXSIZE; /*一維數組 子域 */int length;/*表長度子域 */SqList;/*順序存儲的結構體類型 */(2)本程序是一個完整的、子函數較多的源程序。目的為學生提供一個示范,提供順序存儲表示的資料,供學生參考。比如,主函數中簡單“菜單設計”(do-while 循環內嵌套一個switch 結構)技術。在學習數據結構的初級階段,并不強要求學生一定使用“菜單設 計”技術,同學們可以在main()函數中直接寫幾個簡單的調用語句,就象前面的復數處理程序中的main() 一樣。但是隨著學習的深入,盡早學會使用“菜單設計”技術,會明顯提 高

3、編程和運行效率。源程序(略) 三、實驗題1. 一個線性表有n個元素(n<MAXSIZE, MAXSIZE指線性表的最大長度),且遞增有序。現 有一元素x要插入到線性表的適當位置上,并保持線性表原有的順序不變。設計程序實現。要求:采用順序存儲表示實現;提示:請按照如下順序實現本題功能:第一步:創建順序表,并輸出原始數據第二步:排序,輸出排好序的線性表第三步:輸入要插入的元素x第四步:將x插入已排序的線性表中,使線性表仍然有序第五步:輸出最終結果要求:1、70分程序/事先直接給定有序表#include<>#define MAXSIZE 50typedef structint aM

4、AXSIZE;int length;List;void main()(List L;int i,j;int x;=10;for(i=0;i<10;i+)i=2*i;printf("事先給定的有序表為(當前表長為10): n");for(i=0;i<i+)printf("%4d",i);printf("n請輸入一個數x");scanf("%d",&x);for(i=9;i>=0;i-)(if(x<i)i+1=i;elsei+1=x;printf("%d",i);+;

5、break;for(i=0;i<i+)printf("%4d",i);2、80分程序:/事先直接給定有序表,用函數實現數據元素x的插入#include<>#define MAXSIZE 50typedef structint aMAXSIZE;int length;List;void Insert(List *L,int x);void main()List L;int i,j;int x;=10;for(i=0;i<10;i+)i=2*i;printf("事先給定的有序表為(當前表長為10): n");for(i=0;i<

6、i+)printf("%4d",i);printf("n");并保持線性表/以下程序段請填空完成:現有一元素x要插入到線性表的適當位置上,原有的順序不變。printf("請輸入要插入的元素x:");scanf("%d",&x);Insert(&L,x);/請完成Insert() 函數3、100分程序:/按步驟完成全部功能,并用函數實現#include<>#define MAXSIZE 50typedef structint aMAXSIZE;int length;List; /請注意該順

7、序表的結構void Create(List *L);void Sort(List *L);void Display(List L);void Insert(List *L,int x);main()int i,x;List L;printf("1 、創建線性表(初始化和尾部插入)n");Create(&L);Display(L);printf("2 、對線性表進行排序 n");Sort(&L);Display(L);printf("3 、請輸入要插入的元素:");scanf("%d",&x)

8、;printf("4 、將 x 插入到有序表中 n");Insert(&L,x);Display(L);void Create(List *L)/請填空完成創建無序鏈表的函數)void Sort(List *L)(int i,j,t;for(i=0;i<L->length-1;i+) /冒泡排序,若采用其他排序方法,可加分for(j=0;j<L->length-i-1;j+) if(L->aj>L->aj+1) (t=L->aj;L->aj=L->aj+1;L->aj+1=t;)void Display(List L)(/請完成顯示順序表的函數)void Insert(List *L,int x)(/請完成往有序表L中插入元素x的函數,使順序表仍然有序)四、要求1、可以要求分組完成,組

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論