《c和指针》学习半个月的总结---数据结构部分

    技术2022-05-20  47

    第一部分    链表:

    《c和指针》关于链表的介绍主要是单链表的插入和双链表的插入:

    我现在还是很迷茫,为什么不能用单链表的插入算法去对双链表进行插入呢?  此问题有待自己去思考解决,解决方法大致就是建立个链表,或双链表,然后有算法实现插入操作。

     

    1 单链表的插入算法:

     此处并没有建立链表,只是描述算法,要插入的值为value且链表为有序链表

     

     #include<stdio.h>

    #inlcude<malloc.h>

     

     int list_insert(node** root,int value){

          //建立指向插入点的指针及插入点前的指针、

         node * up;

         node * back;

         node * new;

     

        up = *root;

        back = Null;

        //遍历插入的位置

        while(up!=NULL && up->value<value){

           back =up;

           up= up->next;

        }

     

      // 为value建立新节点

        new= (node *)malloc(sizeof(node));

     

       if(NULL==new)     //分配完后千万不要忘了检测

       {

           return 0;

       }

        new->value=value;

     

    // 将节点插入链表

    new->next=up;  //此处逻辑不要错了

       if(NULL==back) //  把NULL放前面,可以防止写错为“=”

       {

          new=*root  // 词句决定了输入参数为指针的指针

       }

       else 

         {

             new=back->next;

                         

         }

       return 1;

    }

     

    2 双链表插入算法

     暂空,解决了上面问题后,在学吧;

     

     


    最新回复(0)