数据结构--顺序表函数

数据结构–顺序表函数

数据结构线性表–顺序表常用函数

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) // p没到表尾,且所指元素值小于新值
        {
            q=p;
            p=p->next; // 指针后移
        }
        s->next=q->next; // 元素插在q的后面
        q->next=s;
    }
    return OK;
}
2、	插入一个指定序列的表:

Status ListInsert_Sq(SqList &L,int i,ElemType e){
    //在顺序线性表L中第i个位置之间插入新的元素e
    //i的合法值为1≤i≤listlenghth.Sq(L)+1
    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;
}  //ListInsert_Sq
3、	删除一个指定序列的表:

Status ListDelete_Sq(SqList &L,int i,ElemType e){
    //在顺序线性表L中删除第i个元素,并用e返回值
    //i的合法值为1≤i≤listlenghth.Sq(L)+1
    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;
}  //ListDelete_Sq
4、	逆置线性表:

Status ListInversion_Sq(SqList &L,int i,ElemType e){
    //在顺序线性表L中将元素顺序倒置
    for(p = &(L.elem[L.length-1]);p<=L.length/2;p++)
    {
        *q = *p;
        *p = *(p+L.listsize);
        *(p+L.listsize) = *q;
    }
    return OK;
}  //ListInversion_Sq
5、	输出线性表:
Status ListOutput_Sq(SqList &L,int i,ElemType e){
    //在顺序线性表L中将元素顺序倒置
    for(p = &(L.elem[L.length-1]);p<=L.length;p++)
    {
        cout<<*p;
    }
    cout<<endl;
    return OK;
}  //ListOutput_Sq
发布了27 篇原创文章 · 获赞 4 · 访问量 1249

猜你喜欢

转载自blog.csdn.net/WX_timi/article/details/104207852