数据结构问题:循环双链表有一个循环双链表,每个节点由两个指针(r

  我来解答吧:

void delnode(dlist *p)

dlist *q,*r;

q=p;———1

while(q->right!=p) q=q->right;———2

r=p;———3

while(r->left!=p) r=r->left;———4

q->right=r;———5

r->left=q;———6

free(p);———7

程序正确性:

这个程序是有正确的

2,3 : 让q向右转,直到p的左边,所以 q=p->left

4,5 : 同理,让r向左转,直到p的右边,所以 r=p->right

5,6,7 : 这3句不用再说了吧。

数据结构问题:循环双链表有一个循环双链表,每个节点由两个指针(r

  我来解答吧:

void delnode(dlist *p)

dlist *q,*r;

q=p;———1

while(q->right!=p) q=q->right;———2

r=p;———3

while(r->left!=p) r=r->left;———4

q->right=r;———5

r->left=q;———6

free(p);———7

程序正确性:

这个程序是有正确的

2,3 : 让q向右转,直到p的左边,所以 q=p->left

4,5 : 同理,让r向左转,直到p的右边,所以 r=p->right

5,6,7 : 这3句不用再说了吧。

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

t=t->rlink;

cout

void main()

lptr first=NULL;//初始first为NULL

clrscr(); //清屏

dlist obj; //定义dlist的对象obj

first=obj.createlist();//调用这个对象的创建双向链表方法

obj.display(first);//输出

getche(); //这个是用来暂停的,感觉没什么用

}同问。。。

这首英文歌叫什么名?女生唱的。

Better In TimeLeona lewis

lewis – Better In Time

Leona lewis – Better In Time