《数据结构》-Chapter2-线性表

顺序表

插入平均移动结点次数:n/2

删除平均移动结点次数:n-1/2

查找平均移动结点次数:n+1/2

链表:

头插法:

LinkList HeadInsertList(LinkList L, int data) //头插法建立链表
{
    LinkList s = new LinkList();
    s.data = data;
    s.next = L.next;
    L.next = s; //头指针的指针域next指向s节点,使得s成为开始节点。
    return L;
}

LinkList HeadInsertCreate(int[] a){
    LinkList s = new LinkList();
    s.next = NULL;
    for(int i=0;i<a.length(),i++){
        HeadInsertList(L, data);
    }
    return L;
}

尾插法:

LinkList TailCreatList(int a[]) //尾插法建立链表
{
    L = new LinkList();
    LinkList s,r;
    r = L;
    for (int i = 0; i < a.length(); i++) {
        s = new List();
        s.data = a[i];
        r.next = s;
        r = s;
    }
    r.next = NULL;
    return L;
}

单链表逆置:

LinkList Reverse_HeadInsert(LinkList L){
    LNode p,r;
    p=L.next;
    L.next=NULL;
    while(p!=NULL){
        r=p.next;
        p.next=L.next;
        L.next=p;
        p=r;
    }
    return L;
}

LinkList Reverse_Direct(LinkList L){
    LNode pre,p=L.next,r=p.next;
    p.next=NULL;
    while(r!=NULL){
        pre=p;
        p=r;
        r=r.next;
        p.next=pre;
    }
    L.next=p;
    return L;
}
发布了53 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/m0_37302219/article/details/104293514
今日推荐