#include
using namespace std;
typedef struct LNode
{
int data;
LNode *next;
}LNode,*Linklist;
void Init_L(Linklist &L)//链表初始化
{
L=(Linklist)malloc(sizeof(LNode));
if(!L)
exit(OVERFLOW);
L->next=NULL;
}
class set
{
public:
Linklist L;
void Add(int x);
set();
~set();
};
set::~set()
{
Linklist p=L->next,q;
while (p->next!=NULL)
{
q=p;
p=p->next;
free(q);
}
free(L);
}
set::set()
{
Init_L(L);
}
void Show(set a)//显示
{
cout<<"外函数被执行?"< Linklist p=a.L;
while (p->next!=NULL)
{
cout<next->data< p=p->next;
}
}
void set::Add(int x)
{
Linklist p=L,q;
while (p->next!=NULL)
{
p=p->next;
}
Init_L(q);
q->data=x;
q->next=p->next;
p->next=q;
}
int _tmain(int argc, _TCHAR* argv[])
{
set myset;
myset.Add(1);
myset.Add(2);
myset.Add(3);
myset.Add(4);
myset.Add(5);
myset.Add(6);
Show(myset);
return 0;
}
调试时析构函数那里好像循环多做了一次,不知道为什么