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

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

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

数据结构答案


printf("List is:\n");
while(p)
{ printf("%5d",p->data);


p=p->next;
}
printf("\n");


}

基于上述结构定义,求单链表中的结点个数的算法程序如下:


int count(linklist head)

{
int c=0;
linklist p=head;
while (p)
{c++;


p=p->next;
}
return c;


}

3.3设计一个算法,求一个带头结点单链表中的结点个数。
【答】:带头结点的单链表的存储结构定义同题
3.2,实现本题功能的算法程序如下(
3_3.c)
#include "linklist.h"
int count(linklist head)
{ int c=0;
linklist p=head->next;
while (p)
{c++;


p=p->next;
}
return c;


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

head=creatlinklist();
print(head);
printf("\nLength of head is:%d",count(head));
getch();


}
当输入
5个数据时,产生的输出结果如下图所示:



3.4设计一个算法,在一个单链表中值为
y的结点前面插入一个值为
x的结点。即使值为
x的
新结点成为值为
y的结点的前驱结点。
【答】:
#include "linklist.h"
void insert(linklist head,int y,int x)
{/*在值为
y的结点前插入一个值为
x的结点*/


linklist pre,p,s;
pre=head;
p=head->next;



while (p && p->data!=y)
{ pre=p;


p=p->next;
}
if (p)/*找到了值为
y的结点*/
{ s=(linklist)malloc(sizeof(linknode));


s->data=x;
s->next=p;
pre->next=s;


}
}
void main() /*测试程序*/
{linklist head;


int y,x;
head=creatlinklist(); /*创建单链表*/
print(head); /*输出单链表*/
printf("\n请输入
y与
x的值:\n");
scanf("%d %d",&y,&x);
insert(head,y,x);
print(head);


}


程序的一种运行结果如下图所示:



3.5设计一个算法,判断一个单链表中各个结点值是否有序。
【答】:
#include "linklist.h"
int issorted(linklist head,char c)
/*当参数
c=’a’时判断链表是否为升序,当参数
c=’d’是判断链表是否为降序*/
{ int flag=1;


linklist p=head->next;
switch (c)
{case 'a':/*判断带头结点的单链表
head是否为升序
*/



while (p &&p->next && flag)
{if (p->data<=p->next->data) p=p->next;

else flag=0;
}
break;


case 'd':/*判断带头结点的单链表
head是否为降序
*/
while (p &&p->next && flag)
{if (p->data>=p->next->data) p=p->next;

else flag=0;

}
break;
}


return flag;
}
int main() /*测试程序*/
{ linklist head;

head=creatlinklist();
print(head);
if (issorted(head,'a')) printf("单链表
head是升序排列的!
\n");
else
if (issorted(head,'d')) printf("单链表
hea
d是降序排列的!
\n");
else printf("单链表
head是无序的!\n");


}


程序运行时的三种输出结果如下图所示:



3.6设计一个算法,利用单链表原来的结点空间将一个单链表就地转置。

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

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