Demo entry 6684032

listADT

   

Submitted by anonymous on Dec 14, 2017 at 09:12
Language: C. Code size: 826 Bytes.

Status InitList(LinkList &L)
{
    // 构造一个空的线性链表
    Link p;
    p=(Link)malloc(sizeof(LNode)); // 生成头结点
    if(p)
    {
       p->next=NULL;
       L.head=L.tail=p;
       L.len=0;
       return OK;
     }
     else
       return ERROR;
}


Position GetHead(LinkList L)
{
    // 返回线性链表L中头结点的位置
    return L.head;
}


Status OrderInsert(LinkList &L,ElemType e, int (*comp)(ElemType, ElemType))
{
    //已知L为有序线性链表,将元素e按非降序插入在L中。(用于一元多项式)
    Link o,p,q;
    q=L.head;
    p=q->next;
    while(p!=NULL&&comp(p->data,e)<0) // p不是表尾且元素值小于e
    {
        q=p;
        p=p->next;
    }
        o=(Link)malloc(sizeof(LNode)); // 生成结点
        o->data=e; // 赋值
        q->next=o; // 插入
        o->next=p;
        L.len++; // 表长加1
    if(!p) // 插在表尾
        L.tail=o; // 修改尾结点
    return OK;
}

This snippet took 0.00 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).