/*线性表的实现*/
typedef struct
{
int data;
}Elemtype;
typedef struct
{
Elemtype *elem;
int size;
}SqList;
我们用ElemType来定义第二个结构体中的元素
初始化顺序线性表/*初始化线性表*/
int InitList(SqList &L)
{
L.elem = new Elemtype[Maxnum];
if(!L.elem)
exit(OVERFLOW);
L.size = 0;
return 1;
}
线性表判空
int ListEmpty(SqList L)
{
if(L.size==0)
return 1;
return 0;
}
输入数据
*将str字符串中的空格去除 将它输入到顺序表*/
void getnum(SqList &L,string str)
{
int num;
for (int i = 0; i < str.size();i++)
{
if(str[i]==' ')
{
L.elem[L.size++].data = num;
num = 0;
}
else
{
if(num==0x3f)
num = 0;
num *= 10;
num += str[i] - '0';
}
}
if(num!=0)
{
L1.elem[L.size++].data = num;
}
}
每个使用情况不一样
插入删除 *** 作//插入元素 *** 作
int ListInsert(SqList &L,int i,Elemtype e)
{
int k;
if(L.size==Maxnum)
return 0;
if(i<1||i>L.size+1)
return 0;
if(i<=L.size)
{
for (k = L.size - 1; k >= i - 1;k--)
{
L.elem[k + 1] = L.elem[k];
}
}
L.elem[i - 1] = e;
L.size++;
return 1;
}
//删除元素的 *** 作
int ListDelete(SqList &L,int i,Elemtype *e)
{
int k;
if(L.size==0)
return 0;
if(i<1||i>L.size)
return 0;
if(i
一些基本的 *** 作
//获取i位置上的元素
int GetElem(SqList L,int i,Elemtype &e)
{
e = L.elem[i - 1];
return 1;
}
//销毁线性表
void DestroyList(SqList &L)
{
delete (L.elem);
}
//确定元素位置
bool equal(Elemtype a,Elemtype b)
{
if(a.data==b.data)
return 1;
else
return 0;
}
int LocateListelem(SqList L,Elemtype e)
{
int flag = 1;
int k;
for (int i = 0; i < L.size;i++)
{
if(equal(L.elem[i],e))
{
k = i;
flag = 0;
break;
}
}
if(flag){
cout << "改线性表中没有改元素" << endl;
return -1;
}
return k;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)