dlnkinyx.c

来自「《数据结构》教材源程序,可以让你轻松的根据教材学习数据结构」· C语言 代码 · 共 34 行

C
34
字号
 /*****************************************************/
 /*    在双链表中值为y的结点后插入一个值为x的新结点   */
 /*    文件名dlnkinyx.c,函数名insert_x_after_y()     */
 /*****************************************************/
 dnode *insert_x_after_y(dnode *head,datatype x,datatype y)
 {
   dnode *p,*q;
   q=find_num_dlink_list(head,y);/*查找值为y的结点*/
   if(!q)/*没有找到,则不做插入操作*/
   {printf("\n找不到值为%d的结点,无法插入一个值为 %d的结点!\n",y,x);return head;}
   p=(dnode*)malloc(sizeof(dnode));/*分配空间*/
   p->info=x;/*设置新结点的值*/
   if(!head)/*双链表是空的*/
     {
       p->rlink=p->llink=NULL;/*新结点作为双链表中的唯一结点,其左右指针均为NULL*/
       head=p;/*首指针指向新插入的结点*/
     }
   else if(q->rlink==NULL)/*在最后一个结点后插入*/
          {
            p->rlink=q->rlink;/*即为NULL,新插入的结点没有后继。插入操作(1)*/
	    p->llink=q;/*插入操作(2)*/
            q->rlink=p;/*插入操作(4)*/
          }/*注意不能和下面的一般情况一样处理,这里如执行下面的(3)将出错!*/
        else/*一般情况下的插入*/
          {
            p->rlink=q->rlink;/*插入操作(1)*/
            p->llink=q;/*插入操作(2)*/
            q->rlink->llink=p;/*插入操作(3)*/
            q->rlink=p;/*插入操作(4)*/
          }
   return head;
 }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?