#include<iostream>
using namespace std;
struct node //双向链表的节点
{
int date;
node *next; //指向后一个节点
node *prior; //指向前一个节点
};
int main()
{
node *head,*s,*p,*q;//head—头结点 s—新节点 p—创建链表 q—打印链表
int x=0;
p=head=NULL; //创建一个空的头结点
while (x<10) //创建一个长度为10的链表
{
s=new node(); //创建一个新的节点
s->date=x;
if(head==NULL)
{s->next=s->prior=NULL;p=head=s;}
else
{ s->date=x;
s->next=head; //循环链表与非循环的区别
s->prior=p; //将节点p作为新节点s的上一个节点
head->prior=s;
p->next=s; //将新节点s作为节点p的下一个节点
p=p->next;} //节点p后移
++x;
}
q=head;
cout<<"linklist: ";
cout<<q->date<<" ";
q=q->next;
if(q!=NULL)
for (;q!=head;q=q->next) //打印链表
cout<<q->date<<" ";
/*cout<<endl<<q->date; //双向表的验证
q=q->prior;
q=q->next;
cout<<endl<<q->date; */
while(1){}
return 0;
}
using namespace std;
struct node //双向链表的节点
{
int date;
node *next; //指向后一个节点
node *prior; //指向前一个节点
};
int main()
{
node *head,*s,*p,*q;//head—头结点 s—新节点 p—创建链表 q—打印链表
int x=0;
p=head=NULL; //创建一个空的头结点
while (x<10) //创建一个长度为10的链表
{
s=new node(); //创建一个新的节点
s->date=x;
if(head==NULL)
{s->next=s->prior=NULL;p=head=s;}
else
{ s->date=x;
s->next=head; //循环链表与非循环的区别
s->prior=p; //将节点p作为新节点s的上一个节点
head->prior=s;
p->next=s; //将新节点s作为节点p的下一个节点
p=p->next;} //节点p后移
++x;
}
q=head;
cout<<"linklist: ";
cout<<q->date<<" ";
q=q->next;
if(q!=NULL)
for (;q!=head;q=q->next) //打印链表
cout<<q->date<<" ";
/*cout<<endl<<q->date; //双向表的验证
q=q->prior;
q=q->next;
cout<<endl<<q->date; */
while(1){}
return 0;
}