感谢各位了
#include<iostream>
using namespace std;
typedef struct Node
{
Node *next;
int data;
friend class LinkList;
}Node;
class LinkList
{
public:
LinkList();
~LinkList(){
cout<<"析构成功";
}
void creaList(int n); //创建空间为n的单链表
void pushlist(int k,int e); //在位置k插入数据e
int poplist(int l); //删除l位置的数据,并返回value
void output();
private:
Node *head;
int LinkListsize;
};
LinkList::LinkList()
{
head->data=0;
head->next=NULL;
}
void LinkList::creaList(int n)
{
Node *p,*s;
int i;
s=head;
for(i=0;i<n;i++)
{
p=new Node;
p->data=0;
p->next=s->next;
s->next=p;
}
LinkListsize=n;
}
void LinkList::pushlist(int k,int e)
{
if(k>LinkListsize-1)
{
cout<<"链表已满,发生越界错误";
return;
}
Node *s,*p;
int i;
s=new Node;
s->data=e;
p=head;
for(i=0;i<k;i++)
{
p=p->next;
}
s->next=p->next;
p->next=s;
}
int LinkList::poplist(int l)
{
Node *s,*p;
s=head;
p=head;
int i;
for(i=0;i<l-1;i++)
{
s=s->next;
p=p->next;
}
int q;
p=p->next;
s->next=p->next;
q=p->data;
delete p;
return q;
}
void LinkList::output()
{
Node *s;
int i;
int q;
for(i=1;i<LinkListsize;i++)
{
q=s->data;
cout<<q<<endl;
s=s->next;
}
}
int main()
{
LinkList list;
int num;
cin>>num;
list.creaList(num);
int i;
for(i=0;i<num;i++)
{
list.pushlist(i,i+1);
}
list.output();
return 0;
}