【文件属性】:
文件名称:顺序表的C++程序实现
文件大小:4KB
文件格式:TXT
更新时间:2015-10-26 13:41:33
顺序表 C++
用模板方式实现顺序表的合并
#include "stdafx.h"
#include
#define MaxSize 100
template
class SeqList
{
private:
T * Mylist;
int ListMaxSize;
int Length;
public:
SeqList(int ListMaxSize=MaxSize); //构造函数
~SeqList(void);// 析构函数
bool SLIsEmpty(void); // 判断表是否为空
bool SLIsFull(void);//判断表是否满
int ListLength(void){return Length;}//求表长度
T SLGetElem(int i); // 取得第i个元素的值
int SLFind(T & x,int index); //查找值为x的结点
bool SLInsert(int i,T & x); // 在表的第i个位置插入新结点
bool SLDelete(int i); // 删除表的第i个位置的结点
void CreateList(int num);// 创建一个包含num个元素的顺序表
void SLPrint(); //输出全体元素
};
template
SeqList ::SeqList(int listMaxSize) //初始化顺序表
{
if(listMaxSize>0){
ListMaxSize=listMaxSize;
Length=0;
Mylist=new T [ListMaxSize]; // 创建连续的表空间
}
}
template
SeqList ::~SeqList(void)
{
delete [] Mylist;//删除表,释放表空间
}
template
void SeqList ::CreateList(int num)
{
T x;
Length=0;
cout << "请输入"<>x;
Mylist[i]=x;
Length++;
}
}
template
bool SeqList ::SLIsEmpty(void) // 判断表是否为空
{
return (Length<=0)?true:false; //表空则返回真(true),否则返回假(false)
}
template
bool SeqList ::SLIsFull(void)//判断表是否满
{
return(Length>=ListMaxSize)?true:false; //表满则返回真(true),否则返回假(false)
}
template
T SeqList ::SLGetElem(int i) // 取得第i个元素的值
{
return(i<0 || i>Length-1)?-1:Mylist[i];
}
template
int SeqList ::SLFind(T & x,int index) //查找值为x的结点
{
for(int i=0;i
bool SeqList ::SLInsert(int i,T & x) // 在表的第i个位置插入新结点
{
if(i<0 || i>Length) {cout <<"参数i不合理!" <i;j--) Mylist[j]=Mylist[j-1];
Mylist[j]=x;
Length++;
return true;
}
}
template
bool SeqList ::SLDelete(int i) // 删除表的第i个位置的结点
{
if(i<0 || i>Length) {cout <<"参数i不合理!" <
void SeqList ::SLPrint(void) //输出全体元素
{
if (SLIsEmpty())
cout<<"空表! 无元素可输出"< &ListA;,SeqList &ListB;)
{
cout<<"两个参数对象的顺序表:"< myListA(20),myListB(30);
int LenA,LenB;
cout<<"请输入需要建立的第一个顺序表 myListA 的长度: ";
cin>>LenA;
cout<>LenB;
cout<