一、基本功能包括:
(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為指向結構...