zoukankan      html  css  js  c++  java
  • 链表中插入一个节点的三种情况

    在链表中插入一个元素能够分为三种情况:

    1、在节点的时候

    2、在链表中间的任何位置

    3、在链表的最后位置,也能够觉得这样的情况为追加(这个就留到追加的时候来实现)

    以下是代码的实现

    SN *Insert_S_Node(
    				SN *head
    				)										/* 传入的參数是被插入链表中的头指针 */   
    
    {
    	SN *Insert_Node=NULL, *Dest_Node = NULL;			/* Insert_Node是将要做成的新链表中的节点  Dest_Node是要插入的节点*/
    	INT32 OSM = 1, i32i = 0, flag = 0; 
    	Dest_Node = ( SN* )malloc( sizeof (SN) );
    	Insert_Node = head;									
    	OSM = OSM_Printf("输入要插入的位置: ");
    	Dest_Node->Sensor_rating = scanf_for();					 /* 输入插入的序号 */
    	i32i = getchar();										/* 消除回车换行的影响 */
    	if ( 0 > Dest_Node->Sensor_rating)						/* 防止输入了小于0的数 */
    	{
    		OSM = OSM_Printf("请输入大于零的数
    ");
    	}
    
    	else
    	{
    		OSM = OSM_Printf("输入要插入的元素:");						/* 插入的元素 */
    
    		if ( NULL != Dest_Node->Sensor_title )
    		{
    			gets(Dest_Node->Sensor_title);					/* 输入插入的元素 */
    		}
    
    		/* 遍历到要插入的位置 */
    		while (Insert_Node->next != NULL)
    		{
    			Insert_Node = Insert_Node->next;
    			if ( 0 == flag )
    			{
    				if( Dest_Node->Sensor_rating == Insert_Node->next->Sensor_rating)			/* 推断是否相等 */
    				{
    					Dest_Node->next = Insert_Node->next;									/* 開始运行q->next = p->next q->next = p */
    					Insert_Node->next = Dest_Node;
    					flag = 1;																/* 设置标志 */
    					Insert_Node = Dest_Node->next;						
    				}
    			}
    			if ( 1 == flag )
    			{
    				Insert_Node->Sensor_rating++;
    			}
    		}
    	}
    	
    	
    	return head;
    }

    这在中间插入是能够实现的

    可是实如今头节点的时候插入的时候出现了问题



    这个问题是没有考虑到插入的是头节点的情况

  • 相关阅读:
    在Linux上安装 nessus
    漏洞靶场--webug4.0安装
    VMware问题--无法获得 VMCI 驱动程序的版本: 句柄无效
    RobotFramework 截取中文中的数字比较时长
    robotframework 找出重复元素
    Robot Framework 自动化接口测试
    xpath的编写规则
    python模块安装问题:no matching distribution found for XXX 或者 Read timed out.
    python字典获取最大值的键的值
    RobotFramework常见语法
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6698714.html
Copyright © 2011-2022 走看看