#include<iostream.h>
using namespace std;
template<class type> class List;
/*-----------定义一个Listnode链结点-----------*/
template <class type>
class ListNode
{
friend class List<type> ;
private:
type data ;
ListNode<type> *next;
public:
ListNode():next(NULL){}
};
/*------------链表linklist----*/
template <class type>
class List
{
private:
ListNode<type> *linklist;
public:
List()
{
LinkList =new ListNode<type>(0);
}
List(type value)
{
LinkList =new ListNode<type>(value);
}
~List()
{
delete linklist;
Linklist = NULL ;
}
int InsertOrderNode(type value) // 在ListNode链表中插入s结点元素使之链表有序
{
type temp;
ListNode<type> s = new ListNode<type>(value);
ListNode<type> p = LinkList->next ;
if(NULL = s)
{
cerr << "内存已满";
exit(0)
}
for(;s->data>p->data&&p->next!=NULL;p = p->next)
{
}
if(NULL = p->next)
{
p->next = s;
}
else
{
temp = s->data;
s->data = p->data;
p->data = temp;
s->next = p->next;
p->next = s;
}
return(1)
}
void InitList()
{
int value;
for(int i=0;i<linklist->data;i++)
{
cin>>value;
InsertOrderNode(value);
}
}
void InsertOrderNode( ListNode<type> *s )
{
for(;s->data>p->data&&p->next!=NULL;p = p->next)
{
}
if(NULL = p->next)
{
p->next = s;
}
else
{
temp = s->data;
s->data = p->data;
p->data = temp;
s->next = p->next;
p->next = s;
}
}
void outList()
{
linklist<type> *p = linklist->next;
cout>>"linklist out";
for(;p->next!=NULL;p = p->next)
{
cout>>p->data>>endl ;
}
}
List<type> *operator +(List<type>* Ha,List<type>* Hb)
{
ListNode<type> *p;
for(;Hb->linklist->next! = NULL;)
{
p = Hb->linklist->next;
Ha->InsertOrderNode(p );
}
}
};
int main()
{
int i,Ha_nodecount,Hb_nodecount;
cout<<"Ha链表结点个数";
cin>>Ha_nodecount;
cout<<"Hb链表结点个数";
cin>>Hb_nodecount;
List<int> Ha(Ha_nodecount),Hb(Hb_nodecount);
Ha->initList();
Hb->initList();
Ha = Ha+Hb;
Ha->initlist;
return(1);
}
List类的析构函数中的delete 后面要加[ ]么 单链表的析构函数是怎样的啊
C++这代码为什么答案错误?指出并改正,好的加分!!!
很明显这里的条件判断语句有问题,不符合程序设计者的目的。第二个if语句,其目的是判断输入数是否可被5或6整除,而语句“(b==0&&c!=0)||(b!=0&&c==0)”则在判断此数是否是:能被5整除而不能被6整除的数,或,能被5整除而不能被6整除的数。那么显然这里如果输入30的倍数就会得到错误的结...
c++高手帮忙在下面的题目里找出错误的地方,为什么运行不了。急!在线...
运行结果出错的原因是:每一次输入的运算符赋值给sign后,if语句表达式的值都将为真.
菜鸟新学c++。求高手鉴定这道c++题目我哪里做错了,应该怎么改怎么做...
1、当n很大时(如99998),a1和a2的取值超出了double的范围。2、{for(b=1,a1=1,a2=2;b<=n;b++)语法错误。3、for循环中只有分子的值做了对应修改,分母的值未做对应修改。我修改了以下你看看可以不。#include <iostream> include <iomanip> using namespace std;int main(){ double r[999...
求高手帮忙解决下面这个C++中的一个题目。看俺的代码哪里有错...
你有几个地方有错误:1.求个位数,直接用n%10就可以了,你那样子是求的最高位的值 2.既然你已经定了个位为7,直接给m赋7就可以了吧。3.你上面那样子算的时候,最后退出第一个while循环的时候,n是为0的,下面不能用这个n计算,你若是不断的用n\/=10,开始应该用个变量保存这个n的值 4.还...
求c++编程高手指点,指出我的代码错误的地方以及给出改正,谢谢。题目要 ...
是不是报无匹配的构造函数?main函数中Work w;有问题 如果用户自己定义了构造函数,则系统中默认的构造函数将不会调用,要么自己写一个无形参的构造函数,要么把w改成w(n,s)括号中的实参分别对应成员数据int num,ID;char sex;
c++判断正负数 为什么我写的输出错误 能帮我指出错误在那么?非常感谢...
\/n不对,回车号是 \\n 你输入的就是不对嘛, if(a=0)这个条件总不成立,输出成 “\/n0是负数”两类错误,一类是表达式错 a==0 被写作了a=0 另一类是输出格式的转义字符,是反斜杠\\ 写作了斜杠\/
跪求大神找出此C++程序的error,并加以改正(最好自己先调试),本人新人...
看来你是新手哦,都是一些小错误,错误在我的程序中说明了,加油!!有希望成为高手的 include<iostream>using namespace std;int main(){ int year,month,date,result; cout<<"请输入年份:"<<endl; cin>>year; if(year%4==0&&year%100!=0||year%400==0) {\/\/这个地方添...
c语言解决随机数问题:请高手帮忙看看错在哪?如何修改?谢啦!
首先,C语言的所有变量必须在程序的一开始就定义,也就是说,在for语句中是不能定义m和n的。其次,不能重复定义变量,即使在C++中,int k这个语句也会报错,因为每执行一次for循环就会定义一次k。这是不允许的。最后,p[N][N]=k,改为*p[m][n]=k。既然N做宏代换等于10,p[10][10]显然是...
求帮忙修改c++程序,下面是用栈计算后辍表达式值的程序,请把错误和为...
你的代码只要支持1位数的加减乘除吗?你的代码错误很多,声明和调用混乱,还有一些其他语法和逻辑错误。我时间不多,只改了程序,没时间加注释和说明了。你使用UltraCompare对比程序查找修改部分吧。include "stdio.h"include "stdlib.h"include "string.h"include "malloc.h"typedef int DataType;struct ...
c++程序的代码错误,请帮忙纠正以下并注解,还会出先这两个错误,求解
1. 你说是代码的错误,可是却不贴出你的代码,让人怎么帮你解答代码的错误呢?所以注解更加不可能了。请在篇幅允许的情况下尽可能完整地贴出代码,以便检查是否是代码问题。2. VS 提示”发生生成错误,是否继续并运行上次的成功生成”这个应该是你的VS出了问题,请重新启动你VS。如果你安装的是VS2008...