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

📄 dlnkinix.c

📁 《数据结构》教材源程序,可以让你轻松的根据教材学习数据结构
💻 C
字号:

 /*****************************************************/
 /*     在双链表中第i个结点后插入一个值为x的新结点    */
 /*    文件名dlnkinix.c,函数名insert_x_after_i()     */
 /*****************************************************/
 dnode *insert_x_after_i(dnode *head,datatype x,int i)
 {
   dnode *p,*q;
   p=(dnode*)malloc(sizeof(dnode));/*分配空间*/
   p->info=x;/*设置新结点的值*/
   if(i==0)/*在最前面插入一个值为x的新结点*/
     {
       p->llink=NULL;/*新插入的结点没有前驱*/
       p->rlink=head;/*新插入的结点的后继是原来双链表中的第一个结点*/
       head=p;/*新结点成为双链表的第一个结点*/
       return head;
     }
   q=find_pos_dlink_list(head,i);/*查找第i个结点*/
   if(!q)/*第i个结点不存在*/
     {printf("第%d个结点不存在,无法进行插入",i);return head;}
   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 + -