数据结构–顺序表函数
数据结构线性表–顺序表常用函数
1、 创建有n个元素构成的线性表:
Status CreatAscend(LinkList &L,int n)
{
int j;
LinkList p,q,s;
if(n<=0)
return ERROR;
InitList(L);
cout<<"请输入元素个数:"<<n<<endl;
s=(LinkList)malloc(sizeof(LNode));
cin>>(&s->data);
s->next=NULL;
L->next=s;
for(j=1; j<n; j++)
{
s=(LinkList)malloc(sizeof(LNode));
cin>>(&s->data);
q=L;
p=L->next;
while(p&&p->data<s->data)
{
q=p;
p=p->next;
}
s->next=q->next;
q->next=s;
}
return OK;
}
2、 插入一个指定序列的表:
Status ListInsert_Sq(SqList &L,int i,ElemType e){
if(i<1||i>L.length+1)
return ERROR;
if(l.length>=L.listsize)
{
newbase = (ElemType * )realloc(l.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));
L.elem = newbase;
L.listsize += LISTINCREMENT;
}
q = &(L.elem[i-1]);
for(p = &(L.elem[L.length-1]);p>=q;--p)
*(p+1) = *p;
*q = e;
++L.length;
return OK;
}
3、 删除一个指定序列的表:
Status ListDelete_Sq(SqList &L,int i,ElemType e){
if(i<1||i>L.length+1)
return ERROR;
p = &(L.elem[i-1]);
e = *p;
q = l.elem+L.length-1;
for(++p;p<=q;++p)*(p-1) = *p;
--l.length;
return OK;
}
4、 逆置线性表:
Status ListInversion_Sq(SqList &L,int i,ElemType e){
for(p = &(L.elem[L.length-1]);p<=L.length/2;p++)
{
*q = *p;
*p = *(p+L.listsize);
*(p+L.listsize) = *q;
}
return OK;
}
5、 输出线性表:
Status ListOutput_Sq(SqList &L,int i,ElemType e){
for(p = &(L.elem[L.length-1]);p<=L.length;p++)
{
cout<<*p;
}
cout<<endl;
return OK;
}