數據結構 P35 算法實現 雙向循環鏈表的創建

#include
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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章