77范文网 - 专业文章范例文档资料分享平台

数据结构(第二版)习题答案第3章(4)

来源:网络收集 时间:2021-02-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

数据结构答案

的前驱结点。
【答】:
首先定义双链表的数据结构,相关文件
dlink.h,内容如下:
typedef int datatype; /*预定义的数据类型
*/
typedef struct dlink_node{ /*双链表结点定义
*/
datatype data;
struct dlink_node *llink,*rlink;
}dnode;


typedef dnode* dlinklist; /*双链表结点指针类型定义
*/

/*尾插法创建带头结点的双链表
*/
dlinklist creatdlinklist(void)
{ dlinklist head,r,s;

datatype x;
head=r=(dlinklist) malloc(sizeof(dnode)); /*建立双链表的头结点
*/
head->llink=head->rlink=NULL;
printf("\n请输入双链表的内容:(整数序列,以
0结束)\n");
scanf("%d",&x);
while (x) /*输入结点值信息,以
0结束*/
{ s=(dlinklist ) malloc(sizeof(dnode));


s->data=x;
s->rlink=r->rlink; /*将新结点
s插入到双链表链尾*/



s->llink=r;
r->rlink=s;
r=s;
scanf("%d",&x);


}

return head;
}
/*输出双链表的内容
*/
void print(dlinklist head)

{ dlinklist p;
p=head->rlink;
printf("\n双链表的内容是:
\n");
while (p)
{ printf("%5d",p->data);
p=p->rlink;
}
}

本题的求解程序如下:


#include <stdio.h>
#include "dlink.h"
void insertxaty(dlinklist head,datatype y,datatype x)
{ dlinklist s,p;


/*首先在双链表中找
y所在的结点,然后在
y前面插入新结点*/
p=head->rlink;
while (p && p->data!=y)


p=p->rlink;
if (!p) printf("\n双链表中不存在值为
y的结点,无法插入新结点!\n");
else /*插入值为
x的新结点
*/

{ s=(dlinklist)malloc(sizeof(dnode));
s->data=x;
s->rlink=p;
s->llink=p->llink;
p->llink->rlink=s;
p->llink=s;

}
}
void main() /*测试函数*/
{ dlinklist head;

datatype x,y;


head=creatdlinklist();

print(head);

printf("\n请输入要输入的位置结点值
y:\n");

scanf("%d",&y);

printf("\n请输入要输入的结点值
x:\n");

scanf("%d",&x);

insertxaty(head,y,x);/*在值为
y的结点前插入值为
x的新结点
*/

print(head);/*输出新的双链表
*/

getch();
}
本程序的一组测试情况如下图所示。



3.10设计一个算法,从右向左打印一个双链表中各个结点的值。
【答】:
本题的双链表定义同题
3.9,实现从右向左打印双链表的各个结点的值可以用递归程序实
现如下:


#include <stdio.h>

#include "dlink.h"

void vprint(dlinklist head)

{ /*递归方法从右向左打印双链表的值
*/
if (head->rlink)
{vprint(head->rlink);
printf("%5d",head->rlink->data);
}

}

void main() /*测试函数*/

{
dlinklist head;
head=creatdlinklist();
prin
t(head);
printf("\n从右向左打印的双链表的内容是
:\n");


vprint(head);
getch();


}

本程序的一组测试情况如下图所示。



3.11设计一个算法,将一个双链表改建成

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库数据结构(第二版)习题答案第3章(4)在线全文阅读。

数据结构(第二版)习题答案第3章(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1189778.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: