链表的插入 插入函数写好了 在main函数中调用 然而最后的结果并没有实现插入的功能

作者:用户 来源:互联网 浏览:313 次 时间:2016-04-28 12:50:25

链表的插入 插入函数写好了 在main函数中调用 然而最后的结果并没有实现插入的功能 - 摘要: 链表的插入插入函数写好了在main函数中调用然而最后的结果并没有实现插入的功能structLink*InsertNode01(structLink*head,intnodeData,inti){int

问题描述

链表的插入 插入函数写好了 在main函数中调用 然而最后的结果并没有实现插入的功能

struct Link *InsertNode01(struct Link *head,int nodeData,int i)
{ int j=1;

struct Link *pr = head, *p, *temp = NULL;
p = (struct Link *)malloc(sizeof(struct Link));
if(p == NULL)
{
printf("NO enough memory");
exit(0);
}
p->next = NULL;//置新节点的指针域为空
p->data = nodeData;//为新节点赋数据域的值
if(head == NULL)//插入新节点前,对原链表的一个判断,不同情况插入的方法不同
{
head = p;
}
else
{ if(i = 1)
{
p->next = head;
head = p;

    }
    else
    {  while(j < i && pr->next != NULL)
       {
           temp = pr;
           pr = pr->next;
           j++;
       }
       if(j = i)
       {
            pr = temp;
            p->next = pr->next;
            pr->next = p;
       }
       else
       {
           pr -> next = p;
       }

    }

}

return(head);

};


链表的插入 插入函数写好了 在main函数中调用 然而最后的结果并没有实现插入的功能-单链表main

 int main()
{
    int i = 0;
    int place = 0;
    int nodeData;
    char c;
    struct Link *head = NULL;//指向链表头
    printf("Do you want to append a new node(Y/N)");
    scanf(" %c",&c);
    while(c=='Y' || c=='y')
    {
        head = AppendNode(head);
        DispLink(head);//显示当前各节点信息
        printf("Do you want to append a new node(Y/N)");
        scanf(" %c",&c);
        i++;
    }
    printf("%d new nodes have been appended!
",i);
    printf("please input the nodeData you want to delete:");
    scanf("%d",&nodeData);
    DeleteNode(head,nodeData);
    DispLink(head);
    printf("please input the nodeData you want to insert:");
    scanf("%d",&nodeData);
    printf("输入插入的位置");
    scanf("%d",&place);
    InsertNode01(head,nodeData,place);
    DispLink(head);
    //InsertNode(head,nodeData);

    //DeleteMemory(head);//释放分配内存
    return 0;
}

解决方案

数据结构-用链表函数实现链表节点的插入

解决方案二:

把你的代码贴全了。包括main函数调用的代码。

解决方案三:

if(i = 1)少了一个= 应该是if(i == 1)
PS:楼主代码也没贴全,没法帮你调试,自己单步调试先试一下
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

【云栖快讯】Apache旗下顶级开源盛会 HBasecon Asia 2018将于8月17日在京举行,现场仅600席,免费赠票领取入口  详情请点击
云栖社区(yq.aliyun.com)为您免费提供链表的插入 插入函数写好了 在main函数中调用 然而最后的结果并没有实现插入的功能相关信息,包括 单链表main,lua 链表调用函数,链表用于执行递归调用,main方法调用service,java main调用非静态的信息 ,所有链表的插入 插入函数写好了 在main函数中调用 然而最后的结果并没有实现插入的功能相关内容均不代表云栖社区的意见! 该页面h5页面的地址是:https://m.aliyun.com/yunqi/wenzhang/show_833,您可以点击链表的插入 插入函数写好了 在main函数中调用 然而最后的结果并没有实现插入的功能-手机站访问。
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

云服务器9.9元/月,大学必备

热点导航