實驗內容:
1.建立乙個順序表,隨機產生 10 個 100 以內的整數,並按要求完成:
(1)編寫顯示函式,在螢幕上顯示順序表中的 10 個整數;
(2)編寫查詢函式,從鍵盤輸入任一整數在順序表中查詢,若找到,返回該元素在順序表中的位置,否則提示無此元素;
(3)編寫插入函式,從鍵盤輸入待插入元素及插入位置,將完成插入後的順序表輸出;
(4)編寫刪除函式,從鍵盤輸入待刪除元素位置,將該位置元素刪除後的順序表輸出。
2.有兩個有序排序的單鏈表 l1 和 l2,分別存放 10 個資料元素,設計演算法實現兩個單鏈表的合併,要求合併後的單鏈表仍然有序排序,並輸出合併結果。
實驗**:
// sequencelist.h
#pragma once
#include
template
<
typename t>
class
sequencelist
sequencelist
(t* data,
int length)
:mmaxsize
(length +10)
,mlength
(length)
,mdata
(nullptr)}
// 析構函式
~sequencelist()
// 顯示函式
void
display()
;// 查詢函式
intfind
(t element)
;// 插入函式
void
insert
(t data,
int pos)
;// 刪除函式
t delete
(int pos)
;// getter/setter
intgetlength()
intgetmaxsize()
private
:int mmaxsize;
int mlength;
t* mdata;};
template
<
typename t>
void sequencelist
::display()
std::cout << std::endl;
}template
<
typename t>
int sequencelist
::find
(t element)
} std::cout <<
"元素查詢失敗!"
<< std::endl;
return-1
;}template
<
typename t>
void sequencelist
::insert
(t data,
int pos)
if(pos <0)
if(pos >= mlength)
for(size_t i = mlength; i >
0; i--
) mdata[i]
= mdata[i -1]
;}mlength++;}
// 傳入順序表並返回插入資料後的該順序表
template
<
typename t>
sequencelist
&insertseq
(sequencelist
& seq, t data,
int pos)
template
<
typename t>
t sequencelist
::delete
(int pos)
if(index <
0|| index >= mlength)
temp2 = mdata[index]
;for
(size_t i = index; i < mlength; i++
)else
} mlength--
;return temp2;
}// 傳入順序表並返回刪除資料後的該順序表
template
<
typename t>
sequencelist
&deleteseq
(sequencelist
& seq,
int pos)
// main.cpp
#include
#include
#include
#include
"sequencelist.h"
int*
randomdatagenerator
(int
* a,
int length =10)
;int
main()
else
// 插入
std::cout <<
"在第6個位置插入42"
<< std::endl;
insertseq
(seqlist,42,
6); seqlist.
display()
;// 刪除
std::cout <<
"刪除第8個元素"
<< std::endl;
deleteseq
(seqlist,8)
; seqlist.
display()
;return0;
}int
*randomdatagenerator
(int
*a,int length)
return a;
}
總結:
順序表沒什麼好說的,老基礎了,就是非常普通的寫法而已。就是使用隨機數的時候注意隨機數種子是否每次都給了乙個一樣的。
資料結構 一 線性表
一 線性表的定義 線性結構的特點是 在資料元素的非空有限集中,1 存在唯一的乙個被成為 第乙個 的資料元素 2 存在唯一的乙個被成為 最後乙個 的資料元素 3 除了第乙個之外,其他的元素均只有乙個前驅,除了最後乙個以外,其他的元素均只有乙個後繼 線性表是最常用且最簡單的一種資料結構,乙個線性表是n個...
資料結構(C語言版)實驗一 線性表
實驗要求 實驗目的 1 掌握線性表的定義 2 掌握線性表的基本操作,如建立 查詢 插入和刪除等。實驗內容 定義乙個包含學生資訊 學號,姓名,成績 的的順序表和煉表,使其具有如下功能 1 根據指定學生個數,逐個輸入學生資訊 2 逐個顯示學生表中所有學生的相關資訊 3 根據姓名進行查詢,返回此學生的學號...
(資料結構)實驗一 線性表的有關操作
實驗內容 1 隨機產生或鍵盤輸入一組元素,建立乙個帶頭結點的單向鍊錶 無序 2 遍歷單向鍊錶 顯示 3 把單向鍊錶中元素逆置 不允許申請新的結點空間 4 在單向鍊錶中刪除所有的偶數元素 值為偶數 結點。5 編寫在非遞減有序鍊錶中插入乙個元素使鍊錶元素仍有序的函式,並利用該函式建立乙個非遞減有序單向鍊...