線性表基本功能的實現ADT

2021-10-10 22:32:07 字數 3338 閱讀 6985

一、基本功能包括:

(1)建立線性表;

輸入有兩行,第一行是乙個整數n,線性表的長度; 第二行是n和資料元素

(2)插入:

輸入兩個整數,即元素插入的位置和元素值

(3)刪除:

輸入乙個整數,即要刪除的元素

(4)搜尋:

輸入乙個整數,即搜尋元素的值

(5)輸出:

輸出線性表的各個元素,空格分開。

(6)集合的並運算:

輸入建立第二個集合(線性表),完成並運算

(7)集合的交運算:

輸入建立第二個集合(線性表),完成交運算

(8)合併兩個有序線性表:

兩個有序線性表,合併後仍然有序

測試資料:

5 //線性表a的長度

1 3 5 7 9 //線性表a的資料

2 10 //表示在第2個位置插入10

10 //表示刪除值=10的資料元素

9 //查詢元素9

11/ 查詢元素22

6 //線性表b的長度

1 2 3 4 5 6//線性表b的資料

具體**如下

1、頭函式以及線性表的建立(有詳細注釋)

using namespace std;

#include //c++萬能標頭檔案,包含目前c++所包含的全部標頭檔案

class seqlist //線性表的建立

void input ();

void output() ;

void insert (int x, int i);

void remove (int i);

int search ( int x);

int getdata ( int i )//返回下標為時i的數值data

else

return -1 ;

};int length()const//順序表長度

;void sort();//排序 交換法

void cross(seqlist &la,seqlist &lb);//交運算 生成乙個新的順序表

void unions (seqlist &la,seqlist &lb);//並運算 生成乙個新的順序表

} ;

seqlist::seqlist ( int sz )//初始化線性表,sz是為線性表開闢的空間大小,但實際上的長度是last

}```

2、線性表相關操作的函式

void seqlist:: input()

void seqlist:: output()

}void

seqlist::

insert(

intx,

inti)

data[i]=x;

last++;

}void seqlist:: remove( int i)

last--;

}int seqlist:: search( int x)

return 0;

}void seqlist :: cross(seqlist &a,seqlist &b) //交運算

i++;

}}void seqlist :: unions (seqlist &a,seqlist &b) //並運算}}

}

說明:注意search函式中

int seqlist:: search( int x)

return 0;

}找到值為x的位置時,為何不直接返回下標i,而是要返回下標i+1呢?因為下標的值可能為0,如果剛好是第乙個元素,則會return 0,直接結束*

3、主函式

int main()

{ seqlist mylist1(50);//建立線性表mylist1

seqlist mylist2(50);//建立線性表mylist2

seqlist jiao(50);//交集

seqlist bing(50);//並集

mylist1.input();//輸入mylist1

cout<<"a is created as: ";

mylist1.output();//輸出mylist1

cout

cin>

>where;

cin >>value;

mylist1.insert(value,where-1);//在where處插入元素value

cout<<"after

insertedais

";mylist1.output

();coutnum;

cin>

>num;

mylist1.remove(mylist1.search(num));//找到數num的位置並移除該數

cout<<"after

deletedais

";mylist1.output

();cout>

>where;

if(mylist1.search(where))

cout<<"

islocated

atindex

of"coutnotfound">

>where;

if(mylist1.search(where))

cout《測試結果如下:

51357

9a is created as:13

5792

10after inserted a is 1103

57910

after deleted a is 135

7999 is located at index of 5

1111 is not found61

2345

6b is created as:12

3456

a cross b is 135

a union b is 135

7924

6a union b in sequence is 123

4567

9process returned 1

(0x1

) execution time :

62.651 s

press any key to continue

.

線性表的基本操作並不難,可視作一維陣列來處理,關鍵在於對線性表類的理解。

線性表基本功能的c語言實現

include define false 0 define ok 1 define maxsize 10 定義了線性表的結構 typedef struct sqlist 初始化線性表 int initlist sqlist l 向線性表插入資料 int listinsert sqlist l,int...

c語言實現線性表的基本功能

include include 區別c和c 1.c語言是 includec 是 include是完全物件導向 c 是半物件導向 出現類 既面向過程又物件導向 c語言是面向過程 語言原始檔拓展名可以是cpp c plus plus c 向下相容的 define listsize 100 常量 type...

鍊錶的基本功能實現

前言 鍊錶的實現,查詢,插入,刪除,這些簡單的操作。在平時的學習中,經常會遇見,故以單鏈表為例做個總結。鍊錶的優缺點,以及適用情況在前面的一篇文中就提到過,就不作介紹了。一 鍊錶的定義 單鏈表儲存結構 typedef struct lnode lnode,linklist linklist為指向結構...