这道数据结构试题怎么做? 10
1.通讯录包含许多人的姓名、电话号码等信息,是大量数据的集体存储(所以考虑用基本数据类型还是采用数据结构?);其次,若把手机中通讯录中每条纪录抽象看成一个数据,它要包含哪...
1. 通讯录包含许多人的姓名、电话号码等信息,是大量数据的集体存储(所以考虑用基本数据类型还是采用数据结构?);其次,若把手机中通讯录中每条纪录抽象看成一个数据,它要包含哪些小数据项?这些纪录之间是不是按先后顺序存放的?考虑这样的存放类似哪种逻辑结构(线性表、图、还是树)?
※实质: 先考虑问题中数据存储需要哪些的数据类型和结构
2.考虑要编写的通讯录一般都有哪些功能? 当把手机中通讯录中每条纪录抽象看成一个数据,每项功能本质上可以由数据的哪些操作(或操作组合)实现?
※实质:再考虑在这些结构具体存储下需要实现的功能可分解成哪些基本操作,分别将它们定义出来;若某操作太简单,就不定义,直接写在主函数中;
3.考虑若程序编写好,你正在使用,每项使用前,需要输入什么已知,通过哪些操作,输出(显示)出所求结果。
※实质:编写主函数 按定义变量-输入数据-处理数据-输出结果这个流程编写,所有操作已定义成函数,直接调用即可,其它通过语句实现.
二、实验部分程序实现
1.程序1:
一、打开宏文件,定义所需数据类型
#include "stdio.h"
#define MaxSize 50
typedef struct node
{char xm; /姓名/
float hm ; /电话号码/ }elemtype;
二、将所需操作定义成函数
1.求查找X位置(操作)和插入(操作) 实现功能:可查找某姓名是否存在在该通讯录中和添加新人信息(姓名、电话号码)
如:
三、编写主函数(主程序)
如:main()
{
1.定义变量
如:int i=1,n;
lnode L;
char ch,x;
2.输入数据
如: init(&L);
printf("\n\n\n**************顺序表演示程序***********\n");
printf("请输入你想建立的顺序表的元素,以?结束:");
ch=getchar();
3.主操作(输入参数,然后通过函数或过程的调用实现)
4.输出(各种操作实现后,输出处理结果)
如:printf("\n删除后的顺序表为:");
print(&L);
思考:1.在链式结构下如何实现上述功能?
2.线性表还有哪些现实应用?
四、测试结果
程序1的结果测试:
运行程序,屏幕显示:“请输入你想建立的顺序表的元素,以?结束:”
输入:54381(回车)
你建立的顺序表为:5—>4—>3—>8—>1
顺序表的长度为:5
输入你想查找的元素:4(回车)
你查找的元素为4序位为2
输入你想查找的元素序位:4(回车)
你查找的元素为:8
输入你想插入的元素以及序位:<用逗号隔开>":6,3(回车)
插入后顺序表为:5—>4—>6—>3—>8—>1
请输入你想删除的元素序位:5(回车)
删除后的顺序表为:5—>4—>6—>3—>1
xiele 我的邮箱410834459@qq.com 展开
※实质: 先考虑问题中数据存储需要哪些的数据类型和结构
2.考虑要编写的通讯录一般都有哪些功能? 当把手机中通讯录中每条纪录抽象看成一个数据,每项功能本质上可以由数据的哪些操作(或操作组合)实现?
※实质:再考虑在这些结构具体存储下需要实现的功能可分解成哪些基本操作,分别将它们定义出来;若某操作太简单,就不定义,直接写在主函数中;
3.考虑若程序编写好,你正在使用,每项使用前,需要输入什么已知,通过哪些操作,输出(显示)出所求结果。
※实质:编写主函数 按定义变量-输入数据-处理数据-输出结果这个流程编写,所有操作已定义成函数,直接调用即可,其它通过语句实现.
二、实验部分程序实现
1.程序1:
一、打开宏文件,定义所需数据类型
#include "stdio.h"
#define MaxSize 50
typedef struct node
{char xm; /姓名/
float hm ; /电话号码/ }elemtype;
二、将所需操作定义成函数
1.求查找X位置(操作)和插入(操作) 实现功能:可查找某姓名是否存在在该通讯录中和添加新人信息(姓名、电话号码)
如:
三、编写主函数(主程序)
如:main()
{
1.定义变量
如:int i=1,n;
lnode L;
char ch,x;
2.输入数据
如: init(&L);
printf("\n\n\n**************顺序表演示程序***********\n");
printf("请输入你想建立的顺序表的元素,以?结束:");
ch=getchar();
3.主操作(输入参数,然后通过函数或过程的调用实现)
4.输出(各种操作实现后,输出处理结果)
如:printf("\n删除后的顺序表为:");
print(&L);
思考:1.在链式结构下如何实现上述功能?
2.线性表还有哪些现实应用?
四、测试结果
程序1的结果测试:
运行程序,屏幕显示:“请输入你想建立的顺序表的元素,以?结束:”
输入:54381(回车)
你建立的顺序表为:5—>4—>3—>8—>1
顺序表的长度为:5
输入你想查找的元素:4(回车)
你查找的元素为4序位为2
输入你想查找的元素序位:4(回车)
你查找的元素为:8
输入你想插入的元素以及序位:<用逗号隔开>":6,3(回车)
插入后顺序表为:5—>4—>6—>3—>8—>1
请输入你想删除的元素序位:5(回车)
删除后的顺序表为:5—>4—>6—>3—>1
xiele 我的邮箱410834459@qq.com 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询