64,682
社区成员
发帖
与我相关
我的任务
分享
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
typedef int DataType;
class Node
{
friend class LinkList;
private:
int num;
Node* next;
DataType code;
public:
Node(int i,const DataType& x);
};
Node::Node(int i,const DataType& x)
{
num=i;
code=x;
next=NULL;
}
class LinkList
{
private:
int size;
Node* head;
public:
LinkList();
void Insert();
void Print();
DataType GetData(int i);
};
LinkList::LinkList()
{
size=0;
head=NULL;
}
void LinkList::Insert()
{
int a[7]={1,2,3,4,5,6,7};
int i=0;
Node* p;
Node* q;
//Node* head; 这里又定义一个head错误
head=new Node(0,a[0]);
p=head; //p=q;
for(i=1;i <=6;i++)
{
q=new Node(i,a[i]); //q=新节点
p->next=q; //连接新节点
p=p->next; //p移到链表尾
size++;
}
}
void LinkList::Print()
{
Node* p;
p = head;
for(int i=0;i <=6;i++)
{
cout <<p->code <<" ";
p=p->next;
}
}
void main()
{
LinkList L;
L.Insert();
L.Print();
}
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
typedef int DataType;
class Node
{
friend class LinkList;
private:
int num;
Node* next;
DataType code;
public:
Node(int i,const DataType& x);
};
Node::Node(int i,const DataType& x)
{
num=i;
code=x;
next=NULL;
}
class LinkList
{
private:
int size;
Node* head;
public:
LinkList();
void Insert();
void Print();
DataType GetData(int i);
};
LinkList::LinkList()
{
size=0;
head=NULL;
}
void LinkList::Insert()
{
int a[7]={1,2,3,4,5,6,7};
int i=0;
Node* p;
Node* q;
//Node* head; 这里又定义一个head错误
head=new Node(0,a[0]);
p=head; //p=q;
for(i=1;i <=6;i++)
{
q=new Node(i,a[i]); //q=新节点
p->next=q; //连接新节点
p=p->next; //p移到链表尾
size++;
}
cout<<head->next->code;
}
void LinkList::Print()
{
Node* p;
p = head;
for(int i=0;i <=6;i++)
{
cout <<p->code <<" ";
p=p->next;
}
}
void main()
{
LinkList L;
L.Insert();
L.Print();
}
//注释掉了insert函数中的head声明 原因请看注释
#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;
typedef int DataType;
class Node
{
friend class LinkList;
private:
int num;
Node* next;
DataType code;
public:
Node(int i,const DataType& x);
};
Node::Node(int i,const DataType& x)
{
num=i;
code=x;
next=NULL;
}
class LinkList
{
private:
int size;
Node* head;
public:
LinkList();
void Insert();
void Print();
DataType GetData(int i);
};
LinkList::LinkList()
{
size=0;
}
void LinkList::Insert()
{
int a[7]={1,2,3,4,5,6,7};
int i=0;
Node* p;
Node* q;
//Node* head; //屏蔽了private变量,事实上函数退出是head的地址为0xcccccccc
head=new Node(0,a[0]);
p=head; //p=q;
for(i=1;i <=6;i++)
{
q=new Node(i,a[i]); //q=新节点
p->next=q; //连接新节点
p=p->next; //p移到链表尾
size++;
}
p=head;
}
void LinkList::Print()
{
Node* p;
p = head;
for(int i=0;i <=6;i++)
{
cout <<p->code <<" ";
p=p->next;
}
}
void main()
{
LinkList L;
L.Insert(); //如果不注释掉Node *head;此时查看head的地址是null
L.Print();
}
#include <iostream>
#include <cstdlib>
using namespace std;
typedef int DataType;
class Node
{
friend class LinkList;
private:
int num;
Node* next;
DataType code;
public:
Node(int i,const DataType& x);
};
Node::Node(int i,const DataType& x)
{
num=i;
code=x;
next=NULL;
}
class LinkList
{
private:
int size;
Node* head;
public:
LinkList();
void Insert();
void Print();
DataType GetData(int i);
};
LinkList::LinkList()
{
size=0;
}
void LinkList::Insert()
{
int a[7]={1,2,3,4,5,6,7};
head=new Node(0,a[0]);//LZ重新定义了一个head,将对象的head覆盖了,这样就可以了
int i=0;
Node* p;
Node* q;
q=p=head; //p=q;
for (i=1;i <=6;i++)
{
q=new Node(i,a[i]); //q=新节点
p->next=q; //连接新节点
p=p->next; //p移到链表尾
size++;
}
p=head;
}
void LinkList::Print()
{
Node* p;
p = head;
for (int i=0;i <=6;i++)
{
cout<<p->code<<" ";
p=p->next;
}
}
int main()
{
LinkList L;
L.Insert();
L.Print();
return 0;
}
void LinkList::Insert()
{
int a[7]= {1,2,3,4,5,6,7};
int i=0;
Node* p;
Node* q;
//Node* head; //此句覆盖了LinkList::head,注释掉
head=new Node(0,a[0]);
p=head; //p=q;
for(i=1;i <=6;i++)
{
q=new Node(i,a[i]);
p->next=q;
p=p->next;
size++;
}
//p=head; //这句是做什么用的?
}