//C++对双链表的操作
#include <iostream>
using namespace std;
typedef struct node
{
int data;
struct node *left;
struct node *right;
}node;
typedef struct single
{
int data;
struct single *next;
}single;
/*
创建一个双链表
*/
node* Create()
{
struct node *head;
struct node *p;
struct node *s;
head = (node*)malloc(sizeof(node));
p = head;
int cycle = 1;
int x;
while(cycle)
{
cout<<"请输入数据"<<endl;
cin>>x;
cout<<' ';
if(x!=0)
{
s = (node*)malloc(sizeof(node));
s->data = x;
p->right = s;
s->left = p;
p= s;
}
else
{
cycle = 0;
}
}
head = head->right;
head->left = NULL;
p->right = NULL;
return (head);
}
/*
建立一个空的循环单链表
*/
int InitList(struct single *head,int n)
{
struct single *p;
head = (single*)malloc(sizeof(single));
p = head;
int cycle = 1;
for(int i = 0;i<n;i++)
{
p = (single*)malloc(sizeof(single));
p = p->next;
}
return 1;
}
void main()
{
Create();
}