————每天八杯水
一、目的要求
1.掌握線性表順序儲存結構的特點。
2.掌握線性表順序儲存結構的常見演算法。
二、實驗內容
1.輸入一組整型元素序列(不少於 10 個),建立順序表。
2.在該順序表中進行順序查詢某一元素,查詢成功返回 1,否則返回 0。 3.判斷該順序表中元素是否對稱,對稱返回 1,否則返回 0。 4.實現把該表中所有奇數排在偶數之前,即表的前面為奇數,後面為偶數。
5.輸入整型元素序列(不少於 10 個),利用有序表插入演算法建立乙個有序表。
6.利用演算法 5 建立兩個非遞減有序表,並把它們合併成乙個非遞減有序表。
7.在主函式中設計乙個簡單選單,呼叫上述演算法。
三、實驗說明
演算法 1 至演算法 6 的有關函式用標頭檔案方式儲存,主函式包含該標頭檔案。
儲存定義
const int maxsize=15 ; // 表中元素的最大個數
typedef int elemtype; // 元素型別
typedef struct list
sqlist ; // 順序表的型別名
建立順序表時,利用隨機函式自動產生資料
四、**
(一)標頭檔案
#pragma once
#include
#include
#include
using
namespace std;
const
int maxsize =15;
//最大元素個數定為15個
typedef
int elemtype;
//元素的型別
struct list
;//順序表的型別
typedef
struct list* seqlist;
seqlist setlist_seq
(int len)
//建立順序表
cout <<
"\n"
;return list;
}int
findelem
(seqlist list)
//查詢元素
} cout <<
"查詢失敗!!!"
}int
judgesymmetry
(seqlist list)
//判斷對稱
} cout <<
"不對稱!!!"
}int
oddeven
(seqlist list)
//奇數前偶數後
}for
(int i =
0; i < list-
>length; i++)}
cout <<
"奇數在前偶數在後:"
;for
(int i =
0; i < j; i++
) cout <<
"\n"
;return0;
}void
creadorderlist
(seqlist list)
//直接插入演算法排序有序遞增}}
cout <<
"使用直接插入演算法建立遞增有序表:"
;for
(int i =
0; i < list-
>length; i++
)//輸出元素
cout <<
"\n";}
void
compound
(seqlist list1,seqlist list2)
//兩個遞增有序表list和list2合併乙個遞增有序表
creadorderlist
(list1)
;//再把合成後的表進行直接插入演算法建立遞增有序表
}
(二)原始檔
#include
#include
"順序表應用.h"
using
namespace std;
seqlist setlist_seq
(int);
//1.輸入一組整型元素序列(不少於 10 個),建立順序表。
intfindelem
(seqlist)
;//2.在該順序表中進行順序查詢某一元素,查詢成功返回 1,否則返回 0。
intjudgesymmetry
(seqlist)
;//3.判斷該順序表中元素是否對稱,對稱返回 1,否則返回 0。
intoddeven
(seqlist)
;//4.實現把該表中所有奇數排在偶數之前,即表的前面為奇數,後面為偶數。
void
creadorderlist
(seqlist list)
;//5.輸入整型元素序列(不少於 10 個),利用有序表插入演算法建立乙個有序表。
void
compound
(seqlist,seqlist)
;//6.利用演算法 5 建立兩個非遞減有序表,並把它們合併成乙個非遞減有序表。
/*設計選單:
1.使用者輸入不少於10個元素建立順序表
2.查詢元素 成功1 失敗0
3.判斷元素是否對稱 是返回1 不是0
4.實現奇數在偶數前
5.利用插入演算法建立有序表
6.用演算法5建立兩個遞增有序表,再把他們合成乙個遞增有序表
*/int
main()
cout <<
"\n"
; cout <<
"請選擇你繼續的操作:"
; cin >> m;
}break;}
}
五、思考總結
1.**質量還有待高,由於時間水平有限,選單介面做得太粗糙了,下次一定公升級選單介面。
2.知識點方面:此實驗出現了判斷元素對稱、用直接插入演算法建立有序遞增表和奇數在前偶數在後三個新思想,初次構想有些細節還沒有考慮到。
資料結構實驗1 線性表 鍊錶
線性表的順序儲存與鍊錶儲存,實現資料插入 刪除運算。將1中儲存結構改為迴圈鍊錶 雙向鍊錶 迴圈雙向鍊錶等,實現資料插入 刪除。線性表 include include include define ok 1 define error 0 define overflow 0 define list in...
資料結構與演算法基礎 線性表(1)
線性表是具有相同特性的資料元素的乙個有限序列。線性表的邏輯特徵 例1 一元多項式 pn x p0 p1x p2x2 p3x3 pnxn.線性表p p0,p1,p2,p3,pn 每一項的指數 i 都隱藏其係數的pi的序號中 如 p x 5 6x 2x2 3x3.那麼我們可以用陣列來表示。指數 下標i ...
資料結構與演算法筆記(1) 線性表
時間複雜度與空間複雜度 時間複雜度即執行時間的需求,空間複雜度即對空間的需求線性表 線性表記為 a1,a2,ai 1,ai,ai 1,an 則ai 1為ai的直接前驅元素,ai 1為ai的直接後繼元素,存在多個元素的前提下,第乙個元素無前驅,最後乙個元素無後繼,其他元素都有且只有乙個前驅和乙個後繼。...