實現算法2.1的程序

// algo2-1.cpp 實現算法2.1的程序
#include"c1.h"
typedef int ElemType;
#include"c2-1.h" // 採用線性表的動態分配順序存儲結構
#include"bo2-1.cpp" // 可以使用bo2-1.cpp中的基本操作
#include"func2-3.cpp" // 包括equal()、comp()、print()、print2()和print1()函數
void Union(SqList &La,SqList Lb) // 算法2.1
{ // 將所有在線性表Lb中但不在La中的數據元素插入到La中
ElemType e;
int La_len,Lb_len;
int i;
La_len=ListLength(La); // 求線性表的長度
Lb_len=ListLength(Lb);
for(i=1;i<=Lb_len;i++)
{
GetElem(Lb,i,e); // 取Lb中第i個數據元素賦給e
if(!LocateElem(La,e,equal)) // La中不存在和e相同的元素,則插入之
ListInsert(La,++La_len,e);
}
}
void main()
{
SqList La,Lb;
int j;
InitList(La); // 創建空表La。如不成功,則會退出程序的運行
for(j=1;j<=5;j++) // 在表La中插入5個元素,依次爲1、2、3、4、5
ListInsert(La,j,j);
printf("La= "); // 輸出表La的內容
ListTraverse(La,print1);
InitList(Lb); // 創建空表Lb
for(j=1;j<=5;j++) // 在表Lb中插入5個元素,依次爲2、4、6、8、10
ListInsert(Lb,j,2*j);
printf("Lb= "); // 輸出表Lb的內容
ListTraverse(Lb,print1);
Union(La,Lb); // 調用Union(),將Lb中滿足條件的元素插入La
printf("new La= "); // 輸出新表La的內容
ListTraverse(La,print1);
}

運行後的結果;

/*
La= 1 2 3 4 5
Lb= 2 4 6 8 10
new La= 1 2 3 4 5 6 8 10
*/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章