C 資料結構實驗一線性表

2021-10-08 04:31:54 字數 2975 閱讀 3881

實驗內容:

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 編寫在非遞減有序鍊錶中插入乙個元素使鍊錶元素仍有序的函式,並利用該函式建立乙個非遞減有序單向鍊...