順序表的建立及基本操作_第1頁
順序表的建立及基本操作_第2頁
順序表的建立及基本操作_第3頁
順序表的建立及基本操作_第4頁
順序表的建立及基本操作_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、山東師范大學實 驗 報 告課 程: 數(shù)據(jù)結構 班 級: 2016級通信2班 實驗序號: 1 姓 名: 韓明達 學 號: 201611030230 實驗日期: 9.17 題目: 順序表的建立和運算 一、實驗目的和要求 (1)熟悉C語言的上機環(huán)境,進一步掌握C語言的結構特點。(2)掌握線性表的順序存儲結構的定義及基本運算二、實驗環(huán)境Windows10,Visual Studio 2017三、實驗內(nèi)容及實施實驗內(nèi)容1、建立一個順序表,輸入n個元素并輸出; 2、查找線性表中的最大元素并輸出; 3、在線性表的第i個元素前插入一個正整數(shù)x; 4、刪除線性表中的第j個元素; 5、將線性表中的元素按升序排列;

2、【程序流程圖】顯示順序表查找最大元素插入一個正整數(shù)刪除第j個元素按升序排序建立一個順序表。1、輸出順序表; 2、查找線性表中的最大元素并輸出; 3、在線性表的第i個元素前插入一個正整數(shù)x; 4、刪除線性表中的第j個元素;5、排序 *6、將線性表中的元素就地逆序【程序】#include<stdio.h>#include<iostream>using namespace std;#define MAXSIZE 100#define OK 1#define ERROR 0#define OVERFLOW -2typedef struct /定義順序表結構int dataMAX

3、SIZE; /存儲空間的基地址;int length; /當前表長SqList;int InitList(SqList &L) /初始化順序表L.length = 0; /當前長度為0return OK;void ShowList(SqList &L) /顯示順序表cout << "您構建的順序表為:" << endl; /提示int i;for (i = 0; i < L.length; i+)cout << L.datai << " " /依次輸出順序表cout <<

4、endl;void FindMax(SqList &L) /找最大值cout << "該組數(shù)據(jù)的最大值為:" << endl;int m = L.data0;int i;for (i = 0; i < L.length; i+) /依次比較兩個數(shù)的大小,取大者賦給mif (m < L.datai)m = L.datai;cout << m << endl; /輸出最大值int InsertList(SqList &L) /插入新數(shù)字int x, e;cout << "請問您要在

5、第_個數(shù)字前插入新數(shù)字?" /提示 cin >> x; /輸入要插入的位置if (x<1 | x>L.length)cout << "該值錯!" << endl;return ERROR; /位置錯誤提示if (L.length = MAXSIZE)cout << "該順序表空間已滿,不能再添加數(shù)值!" << endl;return OVERFLOW; /存儲空間已滿提示cout << "您要插入的數(shù)字為:" << endl;ci

6、n >> e; /輸入要插入的數(shù)字for (int j = L.length - 1; j >= x - 1; j-)L.dataj + 1 = L.dataj; /從要插入的位置起,后面數(shù)據(jù)依次向后移動L.datax - 1 = e; /插入新數(shù)字L.length+; /表長+1cout << "插入新數(shù)字之后的順序表為:" << endl; /提示ShowList(L); /輸出新表return OK;int DeleteElem(SqList &L) /刪除某個元素int x;cout << "請

7、問您要刪除第_個元素?" /提示cin >> x; /輸入要刪除第幾個數(shù)字if (x<1 | x>L.length)cout << "該值錯!" << endl;return ERROR; /錯誤提示for (int j = x - 1; j < L.length - 1; j+)L.dataj = L.dataj + 1; /從該位置起,以后數(shù)字依次向前移動L.length-; /表長-1cout << "刪除數(shù)字之后的順序表為:" << endl; /提示Show

8、List(L); /輸出新表return OK;void UpRankList(SqList &L) /升序排列順序表int i, j, temp;for (j = 0; j<L.length - 1; j+) /進行 表長-1 趟冒泡for (i = 0; i < L.length - 1 - j; i+) /每趟冒泡比較兩個數(shù)字,共比較 表長-趟數(shù) 次if (L.datai > L.datai + 1) /將兩者較大者移到后邊temp = L.datai;L.datai = L.datai + 1;L.datai + 1 = temp;cout <<

9、"該數(shù)組按升序排列后為:" << endl; /提示ShowList(L); /輸出新表int main()SqList L; /定義順序表LInitList(L); /初始化Lcout << "請輸入要輸入的數(shù)字的個數(shù):" << " "cin >> L.length; /輸入表長cout << "請輸入要輸入的數(shù)字,并用空格隔開:" << endl;int i;for (i = 0; i < L.length; i+)cin >&

10、gt; L.datai; /依次輸入順序表各個元素cout << "請輸入下列選項前的字母對該數(shù)組進行相應操作。" << endl<< "A.顯示出該順序表" << endl<< "B.找出該組數(shù)中的最大值" << endl<< "C.在該順序表中插入新數(shù)據(jù)" << endl<< "D.刪除某個數(shù)據(jù)" << endl<< "E.將該順序表按生序排列&quo

11、t; << endl; /提示char choice;do /主菜單cin >> choice;switch (choice)case 'A': ShowList(L); break;case 'B': FindMax(L); break;case 'C': InsertList(L); break;case 'D': DeleteElem(L); break;case 'E': UpRankList(L); break;default:; while (choice = 'A') && (choice = &#

溫馨提示

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

評論

0/150

提交評論