线性表的顺序表示和操作
2014-02-15 17:01
441 查看
#include<iostream> using namespace std; class SqlList { private: int *elem; int length; int listsize; public: SqlList(int m); SqlList(); ~SqlList(); void CreateSqlList(int n); int GetElem(int i); void DispList(); void InsertElem(int i,int e); int DeleteElem(int i); bool IsExist(int w); void Union(SqlList b); void UnionSort(SqlList b); }; SqlList::SqlList(int m) { elem = new int[m]; length = 0; listsize = m; } SqlList::~SqlList() { delete[] elem; } void SqlList::CreateSqlList(int n) { if(n>listsize) { cout<<"error"<<endl; return ; } else { int i; for(i=0;i<n;i++) { cin>>elem[i]; } } length = n; } int SqlList::GetElem(int i) { if(i>length) { cout<<"error"<<endl; return 0; } else { return elem[i-1]; } } void SqlList::DispList() { int i=0; for(i;i<length;i++) { cout<<elem[i]<<" "; } cout<<endl; } void SqlList::InsertElem(int i,int e) { int m=length; for(m;m>=i;m--) { elem[m] = elem[m-1]; } elem[i-1] = e; length++; } int SqlList::DeleteElem(int i) { int w = elem[i-1]; if(i<0 || i>length) { cout<<"error"<<endl; return 0; } else { for (int j=i;j<length;j++) { elem[j-1] = elem[j]; } } length--; return w; } bool SqlList::IsExist(int w) { for(int i=0;i<length;i++) { if(elem[i] == w) return 1; } return 0; } void SqlList::Union(const SqlList b) { int w = length; int b_length = b.length; for(int i=0;i<b_length;i++) { if(!IsExist(b.elem[i])) InsertElem(++w,b.elem[i]); } } void SqlList::UnionSort(const SqlList b) { int b_length = b.length; int i = 0,j = 0; while(i<length && j<b_length) { if(elem[i] <b.elem[j]) { i++; } else if(elem[i] > b.elem[j] ) { InsertElem(i+1,b.elem[j]); j++; i++; DispList(); } else { i++; j++; } } while(j<b.length) { InsertElem(++i,b.elem[j]); j++; } } int main() { /*SqlList sql(10); sql.CreateSqlList(5); sql.DispList(); sql.InsertElem(3,4); sql.DispList(); sql.DeleteElem(3); sql.DispList(); SqlList sql2(10); sql2.CreateSqlList(3); sql.Union(sql2); sql.DispList();*/ SqlList sql1(20); sql1.CreateSqlList(5); SqlList sql2(10); sql2.CreateSqlList(5); sql1.UnionSort(sql2); sql1.DispList(); return 0; }
相关文章推荐
- 数据结构笔记(一)线性表的顺序表示和基本操作及其顺序表实现的集合运算(A-B)U(B-A)实例
- 顺序表示的线性表的基本操作
- 线性表----队列(顺序表示)的基本操作
- 线性表的顺序表示和实现基本操作之插入元素
- 线性表的顺序表示和基本操作的实现
- 线性表----循环队列(顺序表示)的基本操作
- 线性表的顺序表示及其基本操作
- 数据结构--线性表的顺序表示及操作
- 数据结构复习-线性表的顺序表示
- 数据结构5:线性表的链式表示和相关的12个操作
- 数据结构第一天、线性表的顺序表示与实现
- 【练习】线性表的顺序表示实现
- 2.2线性表的顺序表示和实现
- 线性表的顺序存储实现及相关操作 C语言版
- 线性表的顺序表示
- 数据结构教程 第六课 线性表的顺序表示和实现
- 实验一 线性表的顺序表示与实现
- 顺序线性表的基本操作算法
- 线性表的顺序表示和实现
- 数据结构C语言实现线性表(顺序实现)的初始化与基本操作