以下是个链表,结果输出1,而我要的是输出1 2 3 4 5
问题应该出在绿色处的函数定义,会的助我,谢谢
在头文件"mylist.h"中有
struct ListNode
{
int nun1;
ListNode *next;
};
class MyList
{
static int i;
ListNode *head;
public:
void displist();
void creatlist(int&a);
MyList(int a=1);
~MyList();
};
在文件"mylist.cpp"中有
#include "mylist.h"
#include <iostream>
using namespace std;
MyList::MyList(int a)
{
creatlist(a);
}
MyList::~MyList()
{
}
int MyList::i = 0;
void MyList::creatlist(int &a)//问题就在这个函数里,该怎么改呢
{
ListNode *h=NULL,*s,*t;
if(i==0)
{
h=new ListNode;
head=h;
h->nun1=a;
h->next=NULL;
}
t=h;
if(i!=0)
{
s=new ListNode;
t=new ListNode;
s->nun1=a;
s->next=NULL;
t->next=s;
t=s;
}
i++;
}
void MyList::displist()
{
ListNode *p=head;
while(p!=NULL)
{
cout<<p->nun1<<" ";
p=p->next;
}
cout<<endl;
}
主函数有
#include "mylist.h"
#include <iostream>
using namespace std;
void main()
{
MyList list,list1(3),list2(4),list3(5);
list.displist();
}
他为什么只输出1,我要的结果是1,2,3,4,5