数据结构 P35 算法实现 双向循环链表的创建

30 篇文章 0 订阅
29 篇文章 0 订阅
#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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值