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

问题描述

链表的插入 插入函数写好了 在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);

};


 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执行停在该断点处。)是程序员必须掌握的技能之一。

时间: 2024-11-03 02:38:57

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

菜鸟nginx源码剖析 框架篇(一) 从main函数看nginx启动流程(转)

俗话说的好,牵牛要牵牛鼻子 驾车顶牛,处理复杂的东西,只要抓住重点,才能理清脉络,不至于深陷其中,不能自拔.对复杂的nginx而言,main函数就是"牛之鼻",只要能理清main函数,就一定能理解其中的奥秘,下面我们就一起来研究一下nginx的main函数. 1.nginx的main函数解读 nginx启动显然是由main函数驱动的,main函数在在core/nginx.c文件中,其源代码解析如下,涉及到的数据结构在本节仅指出其作用,将在第二节中详细解释. nginx main函数的流

c/c++之:main函数参数

一.文章来由 一直知道但是没有深究的东西. 二.参数解释 说简单点就是: int argc;//表示读入字符串个数 char *argv[];//指针数组,用来存放读入的字符串 程序的意思逐个输出所有读入的字符串,每个字符串间空一个制表符间隔. 由于main函数不能被其它函数调用,因此不可能在程序内部取得实际值.那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的.当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些

asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结

通常javascript代码可以与HTML标签一起直接放在前 端页面中,但如果JS代码多的话一方面不利于维护,另一方面也对搜索引擎不友好,因为页面因此而变得臃肿:所以一般有良好开发习惯的程序员都会把 javascript代码放到独立的js文件中,其他页面通过引入该js文件来使用相应的 javascript代码.用如下方法引用JS文件:<script src="script/admin.js" type="text/javascript"></scr

c++-C++ main()函数返回字符串

问题描述 C++ main()函数返回字符串 如题,怎样在main()函数里返回字符串? 如: string main() { return "hello"; } 这样不行的,该怎么办? 解决方案 main函数的返回值是固定的,只能是int 如果你要在另一个程序调用,你可以用cout输出,另一个程序从standard input获取. 解决方案二: main函数是入口函数,返回值为int是为了能够通过-1.0.1等识别运行的状态. 你要返回字符串,可以自己定义一个函数. 解决方案三:

JavaScript学习笔记(三):JavaScript也有入口Main函数_javascript技巧

在C和Java中,都有一个程序的入口函数或方法,即main函数或main方法.而在JavaScript中,程序是从JS源文件的头部开始运行的.但是某种意义上,我们仍然可以虚构出一个main函数来作为程序的起点,这样一来不仅可以跟其他语言统一了,而且说不定你会对JS有更深的理解. 1. 实际的入口 当把一个JavaScript文件交给JS引擎执行时,JS引擎就是从上到下逐条执行每条语句的,直到执行完所有代码. 2. 作用域链.全局作用域和全局对象 我们知道,JS中的每个函数在执行时都会产生一个新的

链表相关问题。。1是删除,当删除头节点的时候,会出现死循环 2插入代码写好,但是没有实现插入的功能

问题描述 链表相关问题..1是删除,当删除头节点的时候,会出现死循环 2插入代码写好,但是没有实现插入的功能 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""&am

strcpy-为什么,我向图中插入顶点老是失败呢,就是InsertVex那个函数

问题描述 为什么,我向图中插入顶点老是失败呢,就是InsertVex那个函数 Graph.h struct Vex { int num; char name[20]; char desc[1024]; }; struct Edge { int vex1; int vex2; int weight; }; class CGraph { private: int m_aAdjMatrix[20][20]; Vex m_aVexs[20]; int m_nVexNum; public: CGraph(

c语言-C语言,请问这个销毁链表的函数写得对不对

问题描述 C语言,请问这个销毁链表的函数写得对不对 #include typedef int ElemType; typedef struct node{ ElemType data; struct node *next; }LNode,*LinkList; void DestroyLinkList(LinkList L) { if(L==NULL) return 0; if(L->next!=NULL) { p=L; L=L->next; free(p); } free(head); hea

单链表中main函数出现死循环

问题描述 单链表中main函数出现死循环 int main() { int choice;//选项 int n;//结点个数 int i;//位置 ElemType e; LNode *L; cout<<"选项:n1.创建n2.插入n3.删除n0.退出n请选择:"< cin>>choice; while(1) { switch(choice) { case 1: InitList_L(L);//单链表的初始化 cout<<"请输入结点