我想知道这个单链表输入函数有什么错,总是跳出。。。

问题描述

我想知道这个单链表输入函数有什么错,总是跳出。。。

template
void TLinkList::Input()//input function
{TNode *current=m_first->next,*p;
T x,n;
cout<<"input the length of the list"<
cin>>n;
for(int i=1;i<=n;i++)
{
cout<<"input the data of the no."<
cin>>x;
p=new TNode(x);
p=current->next;
current=current->next;
}
current->next=NULL;
}

解决方案

p=current->next;
写反了
current->next = p;

解决方案二:

用js获得 地址栏传过来的值
js中取session的值

解决方案三:

楼上正解 补充一句 p既然开辟空间了 为毛又指向别的地址? 所以是这里出现毛病

解决方案四:

用js获得 地址栏传过来的值
js中取session的值

解决方案五:

p=new TNode(x);
current->next=p;

时间: 2024-08-02 12:14:02

我想知道这个单链表输入函数有什么错,总是跳出。。。的相关文章

使用vc++6.0编单链表一直报各种错,小白真心求解

问题描述 使用vc++6.0编单链表一直报各种错,小白真心求解 /list.h/#include templateclass TLinkList; templateclass TNode{private: T data; //数据 TNode *next;//指向下一个节点的指针public: friend class TLinkList;//申请是链表类的友元类 TNode(T data=0TNode *q=NULL); ~TNode(void);}; templateclass TLinkL

数据结构模版----单链表实现方式总结

数据结构模版----单链表实现方式总结 前面我们提供了四种方式实现的单链表,有带头结点的不带头结点的,而单链表的结构体定义也有两种方式,那么这些实现方式,到底有什么区别呢,为什么会出现这么多种实现方式呢,下面我们就来细细体会 一 单链表结构体的实现区别 首先我们对比一下,单链表结构体 不同方式的单链表实现时,链表结点的实现是相同的,不同之处在于单链表结构体的实现上 单链表结构体的实现 [cpp] view plain copy print? typedef int ElemType;      

教你在Java中玩转单链表

学会了单链表的基本操作之后,我们就可以自定义一些非常有意思的功能了,例如对单链表中的元素进行排序,(排序规则可以由自己定),将链表翻转等等,这里主要是讲老师布置的几个问题,我觉得也非常有趣,大家也可以思考一下,由于这些方法几天前就写完了,五一假在家中也没有对之前的链表进行更多的修改了,所以还是用之前所写过的单链表结构继续添加功能吧. 在实现所有功能之前先来个前言,接下来的这两个方法对后面的每一步都是至关重要的,第一个是获取链表长度的方法: 获取链表长度的方法其实可以是打印链表方法的翻版,我最开始

如何用Go实现单链表

一.概念介绍 下面这副图是我们单链表运煤车队. 每节运煤车就是单链表里的元素,每节车厢里的煤炭就是元素中保存的数据.前后车通过锁链相连,作为单链表运煤车,从1号车厢开始,每节车厢都知道后面拉着哪一节车厢,却不知道前面是哪节车厢拉的自己.第一节车厢没有任何车厢拉它,我们就叫它车头,第五节车厢后面拉其他车厢,我们称为车尾. 作为单链表它最大的特点就是能随意增加车队的长度,也能随意减少车队的长度.这是比数组公交车最大的优点. 二.Go语言实现讲解 1.节点 每节车厢都由车体.绳索和煤炭构成.在Go语言

面试中必知必会的那些题——第一题 单链表倒置

我想你去很多家公司面试的时候,遇到单链表倒置的问题可能比较多,如果一定要给面试题来一个排名,估计也能上top10吧,其实这个 题目玩的是技巧和你对单链表的理解,其实我们仔细想想也不是很难,既然是倒置,那我们一定是一定要走一遍单链表的,对吧,那么走单链 表有两种形式,递归和循环两种方式,而递归正是压栈和出栈,那么我们就想起来了,这不就是顺序和逆序的关系吗?第二种就是循环,还记 得我们曾今学习单链表的时候有一种插法叫做头插法,这种插入复杂度为O(1),不好的地方就是顺序插入的数字,出来的时候却是反的

单链表中查找结点p并删除结点p

问题描述 单链表中查找结点p并删除结点p pointer *p*q=NULL; p=find(headi+1); cout<data< q->next=p; q->next=p->next; delete p; } 网上的实现方法都是删除p的后继结点,我想直接删除p,按照我的想法上述语句应该是正确的,但是执行时候在q->next=p出显示又断点,怎么破 大神救我 解决方案 你应该从头结点开始遍历比如说头结点为 L:假设你要删的结点为p设置一个 q=L;m=q->n

数据-单链表创建打印函数,用完creat再用get(打印函数)

问题描述 单链表创建打印函数,用完creat再用get(打印函数) #include #include #include using namespace std; typedef struct LNode{ int data; LNode* next; }LNode,*List; void creat(LNode* L){ List p ; int n; p= (List)malloc(sizeof(LNode)); L = p; printf("请输入1(添加)或0(不添加):n")

单链表-请教C编程题,本人初学者,求大神解答,万分感谢

问题描述 请教C编程题,本人初学者,求大神解答,万分感谢 求大侠帮忙:C语言程序设计---编程题说明:以下所有题目程序应是非递归的) 编写一个函数,输出整数m的全部素数因子.例如,m=120时,素数因子为:2,2,2,3,5 请编写程序判断一个字符串是否是回文.若是回文,函数返回值为1,否则返回值为0.(回文是顺读和倒读都一样的字符串).要求: 1) 编写sub()判断一字符串是否为回文 2) 在主函数中完成数据的输入与结果的输出 3.起泡排序是把大的元素向下移,也可以将小的元素向上移,请给出下

c++-在类中使用单链表,对象该怎么放到节点中?

问题描述 在类中使用单链表,对象该怎么放到节点中? 我用的是基本的单链表思想,Student是我的类,我把"Student next:"直接写在Student类里面,但是我不知道怎么把对象放到节点上.这是我写的类的单链表: /*Student *L, *s, *r; L = (Student *) malloc (sizeof(Student)); r = L; s = (Student *) malloc (sizeof(Student)); s->/这里不知道该写什么?*/