您的位置首页百科知识

C++ DLIST

C++ DLIST

你这个是完成对双向链表的生成和输出 但是里面有些问题,是你手敲的吧#include #include #include #include struct lnode{ int data; lnode *llink,*rlink;}; //定义一个结构体,一个整形数据和两个指向结构体的指针typedef struct lnode *lptr; //声明一个指向结构体的指针类型class dlist:public lnode //声明dlist这个类公有继承这个结构体{public: lptr p,q,s,t; int x,y; lptr first; //定义类的成员变量public: lptr createlist() //定义创建链表的方法,返回lptr类型 { first=NULL; //初始first为NULL cin>>x>槐埋雹>y; //输入整型数据 p=(lptr)malloc(sizeof(struct lnode));//动态分配结构体内存空间,地址返回给p q=(lptr)malloc(sizeof(struct lnode));//动态分配结构体内存空间,地址返回给q p->data=x; //为p所指向的结构体的数据域赋值 q->data=y; //为q所指向的结构体数据域赋值 p->llink=NULL;//p所指向的结构体的左指针为NULL p->rlink=q;//p所指向的结构体的右指针指向q q->llink=p;//q所指向的结构体的左指针为p q->rlink=NULL;//铅帆q所指向的结构体的右指针为空 first=p;//把p赋液渗给first retrun(first);//返回first } void display(lptr first) //输出函数 { t=first; while(t->rlink!=NULL) //把first赋给t,当t的右指针不为NULL时,输出它的数据,同时t向右移动 { cout<data; t=t->rlink; } cout<data; //输出最后一个结点数据 }};void main(){ lptr first=NULL; //初始first为NULL clrscr(); // 清屏 dlist obj; //定义dlist的对象obj first=obj.createlist();//调用这个对象的创建双向链表方法 obj.display(first);//输出 getche(); //这个是用来暂停的,感觉没什么用}