//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(); }