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;
}