数据结构(链表)

思维导图:

数据结构(链表)_第1张图片

程序代码:

//链表逆置
Linklist nizhi(Linklist head)
{
    //方法1
/*    if(head==NULL || head->next==NULL)
        return;
    Linklist p=head;
    Linklist q=head;
    for(int i=1;i<=(len(head)-1)/2;i++)
    {
        for(int j=1;jnext;
        }
        datatype t=q->data;
        q->data=p->data;
        p->data=t;
        q=q->next;
        p=head;
    }*/
    //方法2
    if(head==NULL||head->next==NULL)
        return head;
    Linklist p=head->next;
    head->next=NULL;
    while(p!=NULL)
    {
        Linklist t=p;
        p=p->next;
        t->next=head;
        head=t;
    }
    return head;
}
//任意元素查找
void chazhao_ele(Linklist head,datatype element)
{
    if(head==NULL)
        return;
    Linklist p=head;
    for(int i=1;p!=NULL;i++)
    {
        if(p->data==element)
        {    printf("该元素位置:%d\n",i);
            return;
        }
        p=p->next;
    }
    printf("不存在该元素\n");
}
//任意元素修改
void xiugai_ele(Linklist head,datatype ele,datatype element)
{
    if(head==NULL)
        return;
    Linklist p=head;
    while(p!=NULL)
    {
         if(p->data==ele)
         {
             p->data=element;
         }
         p=p->next;
    }

}
//任意元素删除
Linklist shanchu_ele(Linklist head,datatype element)
{
    if(head==NULL)
        return head;
    Linklist p=head;
    for(int i=1;p!=NULL;i++)
    {
        if(p->data==element)
        {
            head=del_pos(head,i);
        }
        p=p->next;
    }
    return head;
}
//查找倒数第n个节点
void reserch(Linklist head,int n)
{
    if(head==NULL)
        return;
    if(n<1||n>len(head))
        return;
    Linklist p=head;
    Linklist q=head;
    for(int i=0;inext;
    }
    while(p!=NULL)
    {
        p=p->next;
        q=q->next;
    }
    printf("%d\n",q->data);
}
//排序
void paixu(Linklist head)
{
    if(NULL==head||head->next==NULL)
        return;
    for(int i=0;idata>p->next->data)
            {
                datatype t=p->data;
                p->data=p->next->data;
                p->next->data=t;
            }
            p=p->next;
        }
    }    
}
//释放
Linklist shifang(Linklist head)
{
    if(head==NULL)
        return head;
    Linklist p=head->next;
    for(int i=1;i

结果:

 数据结构(链表)_第2张图片

你可能感兴趣的:(数据结构,链表,java)