大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > C技巧 > 单链表的相关操作代码

单链表的相关操作代码(2)

关键词:链表操作代码  阅读(1135) 赞(17)

[摘要]本文是对单链表的相关操作的讲解,与大家分享。

在单链表中删除值为value的节点

 pNode delete_list(pNode pHead, int value)
 {
     pNode pre = NULL;//pcurrent为目标结点
     pNode pcurrent = pHead->link;//pre前驱结点
     if (pHead==NULL)
     {
         return NULL;
     }
     while (pcurrent->data != value&&pcurrent->link != NULL)
     {
         pre = pcurrent;
         pcurrent = pcurrent->link;
     }
     pre->link = pcurrent->link;//删除操作
     free(pcurrent);
     return pHead;
 }

第六步:单链表的测长

 int length_list(pNode pHead)
 {
     pNode pcurrent = pHead->next;
     while(pcurrent != NULL)
     {
         count++;
         pcurrent = pcurrent->next;
     }
     return count;
 }

第七步:对链表进行冒泡排序

 void bubblesort_list(pNode pHead)
 {
     pNode i,k;//声明两个临时变量,用于for循环
     int temp;
     for(i = pHead->next;i != NULL;i = i->next)
         for(k = i->next;k != NULL;k = k->next)
         {
             if(i->data > k->data)
             {
                 temp = i->data;
                 i->data = k->data;
                 k->data = temp;
             }
         }
     return ;
 }

第八步:单链表的逆置(有很多种方法,递归,循环)

 pNode reverse2(pNode head)
 {
     pNode F,S,T;
     F = head;
     S = F->link;
     T = S->link;
     head->link = NULL;
     while(T!=NULL)
     {
         S->link = F;
         F = S;
         S = T;
         T = T->link;
     }
     S->link = F;
     return S;
 }
«上一页12下一页»


相关评论