首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
【程序说明】 定义一个多边形结构:struct polygon实现以下内容:(1)建立该结构的链表:create函数是创建链表,每输入一个结点的数据,就把该结点加入到链表当中,它返回创建的链表的头指针。(2)显示链表的各个结点数据:结点数据包括:多边
【程序说明】 定义一个多边形结构:struct polygon实现以下内容:(1)建立该结构的链表:create函数是创建链表,每输入一个结点的数据,就把该结点加入到链表当中,它返回创建的链表的头指针。(2)显示链表的各个结点数据:结点数据包括:多边
admin
2013-01-05
18
问题
【程序说明】
定义一个多边形结构:struct polygon实现以下内容:(1)建立该结构的链表:create函数是创建链表,每输入一个结点的数据,就把该结点加入到链表当中,它返回创建的链表的头指针。(2)显示链表的各个结点数据:结点数据包括:多边形顶点数、各顶点的纵横坐标、当多边形顶点数为0时,链表创建结束。(3)编写一个函数disp,删除链表中的所有结点。需要注意的是:要先释放结点数据内存,再删除结点,如果在释放结点数据内存单元之前删除结点,则无法找到结点数据内存单元的地址,也就无法释放数据的内存单元。
【程序】
#include "iostxeam. h"
#include "iomanip. h"
stmct polygon
{
int n;
int *x;
int *y;
polygon *next;
};
void Push(polygon*& head, int n)
{
polygon* newNode = new polygon;
newNode = new polygon;
newNode->next=(1);
newNode->x = new int[n];
newNode->y = new int[n];
newNode->n=(2);
for(int i=0; i<=(3); i++) {
cout<<"请输入多边形各顶点x、y坐标, 坐标值之间用空格分隔: ";
cin>>newNode->x
>>newNode->y
;
}
(4)= head; //在head前不需要额外的*
head = newNode;
}
polygon *create()
{
polygon* head = NULL;
polygon* tail;
int n;
cout<<"请输入多边形顶点的个数(顶点个数为0时结束): ";
cin>>n;
if(n==O) return (5);
Push(head,(6));
tail = head;
cout<<"请输入多边形顶点的个数(顶点个数为0时结束): ";
cin>>n;
while(n!=0)
{
Push(tail->next,(7)); // 在tail->next增加结点
tail = tail->next; //advance tail to point to last node
cout<<"请输入多边形顶点的个数(顶点个数为0时结束): ";
cin>>n;
}
remm head;
}
void disp(polygon *head)
{
inti, No=l;
eout<<setw( 10)<<"x"<<setw(6)<<"y"<<endl;
while(head !=NULL)
{
cout<<"第"<<No<<"结点: "<<endl;
for(i=0;i<=head->n-1;i++)
cout<<setw(10)<<head->x
<<setw(6)<<head->y
<<endl;
(8);
he ad=(9);
}//Match while statement
}
void del(polygon *head)
{
polygon *p;
while(head!=NIILL
{
p=(10);
head=head->next;
delete p->x;
delete p->y;
delete p;
}//Match while statement
void main()
{
polygon *head;
head=create();
disp(head);
del(head);
}
选项
答案
(1)NULL (2) n (3)n-1 (4)newNode->next (5)head (6) n (7) h (8)NO++ (9)head->next (10)head
解析
如果掌握了链表的创建、遍历和删除的方法,解决本题应该并不困难。要显示链表各结点的数据,就是要把各结点找到,然后把该结点的的每一个x、y坐标打印出来。不过,与普通的链表也有不同的地方:就是该链表的结点数据是指针。要在链表结点中存入数据,必须先动态分配存储数据的内存单元;要删除链表中的各个结点,必须先释放结点数据的内存单元,否则会造成内存泄露。
转载请注明原文地址:https://kaotiyun.com/show/LYDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
以下关于缺陷探测率(DDP)的表述,不正确的是______。A.DDP是一个衡量测试工作效率的软件质量成本指标B.缺陷探测率越高,也就是测试者发现的错误越多,发布后客户发现的错误才可能越少C.DDP是衡量测试投资回报的一个重要指标D.测试周期越长,
以下关于结构化开发方法的叙述中,不正确的是()。
数据库测试的对象包括______。①数据库连接测试②数据库的安全测试③定义的存储过程和触发器的测试④数据库接口测试
某系统中,模块A处理与销售相关的所有细节,仅需要发送一个包含销售量、价格和时间的报表到模块B,则这两个模块之间为()耦合。
功能测试执行过后一般可以确认系统的功能缺陷,缺陷的类型包括(37)。①功能不满足隐性需求②功能实现不正确③功能不符合相关的法律法规④功能易用性不好
关于软件测试过程中的配置管理,______是不正确的表述。A.测试活动的配置管理属于整个软件项目配置管理的一部分B.软件测试配置管理包括4个基本的活动:配置项变更控制、配置状态报告、配置审计、配置管理委员会建立C.配置项变更控制要规定测试基线,对每个
用面向对象方法设计了一个父类File和两个子类DiskFile和TapeFile,这两个子类继承了其父类的open方法,并给出不同的实现。不同的子类执行open方法时,有不同的行为,这种机制称为_____。
以下关于边界值分析法的叙述中,不正确的是
随机试题
如图B3—3所示,下述弹簧木楼面构造层次中,哪一道工序不正确?[1995年第100题][1998年第100题][2000年第103题]
[*]
预计该婴儿可以完成的动作是在感知觉发育上,预计该婴儿可以
关于中风的病因,张景岳提出关于中风的病因,朱丹溪主张
治疗咳嗽的非处方药A、可待因B、喷托维林C、右美沙芬D、苯丙哌林E、右美沙芬复方制剂夜间咳嗽
一个整体市场能够细分为若干子市场,主要是由于顾客需求存在着差异性。()[2006年考题]
首次公开发行股票,应当通过向非特定机构投资者询价的方式确定股票发行价格。()
某PC生产商20××年产品总销售量10000部,其中5000部以正常价格10000元/部销售,其余5000部在搞促销活动期间打9折销售,其间有一部因质量问题退回。经核算,该生产商20××全年销售成本5000万元,销售费用500万元,财务管理费用300万元,
在VisualFoxPro中,假设student表中有40条记录,执行下面的命令后,屏幕显示的结果是( )。?RECCOUNT()
【B1】【B12】
最新回复
(
0
)