⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlnkinyx.c

📁 《数据结构》教材源程序,可以让你轻松的根据教材学习数据结构
💻 C
字号:
 /*****************************************************/
 /*    在双链表中值为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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -