首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
【程序说明】 定义一个多边形结构:struct polygon实现以下内容:(1)建立该结构的链表:create函数是创建链表,每输入一个结点的数据,就把该结点加入到链表当中,它返回创建的链表的头指针。(2)显示链表的各个结点数据:结点数据包括:多边
【程序说明】 定义一个多边形结构:struct polygon实现以下内容:(1)建立该结构的链表:create函数是创建链表,每输入一个结点的数据,就把该结点加入到链表当中,它返回创建的链表的头指针。(2)显示链表的各个结点数据:结点数据包括:多边
admin
2013-01-05
41
问题
【程序说明】
定义一个多边形结构: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
软件设计师下午应用技术考试
软考中级
相关试题推荐
下面①~④是关于软件评测师工作原则的描述,正确的判断是(38)。①对于开发人员提交的程序必须进行完全的测试,以确保程序的质量。②必须合理安排测试任务,做好周密的测试计划,平均分配软件各个模块的测试时间。③在测试之前需要与开发人员进行详细的交流,明确开
某汽车维修公司有部门、员工和顾客等实体,各实体对应的关系模式如下:部门(部门代码,部门名称,电话)员工(员工代码,姓名,部门代码)顾客(顾客号,姓名,年龄,性别)维修(顾客号,故障情况,维修日期,员工代码)假设每个部门允许有多部电话,则电话属性为
在结构化分析模型中,______描述了所有在目标系统中使用的和生成的数据对象。
结构化分析的输出不包括________________。
下图是①设计模式的类图,该设计模式的目的是②,图中,Abstraction和RefinedAbstraction之间是③关系,Abstraction和Implementor之间是④关系。①处应填入?
在性能测试中,关于数据准备,(65)描述是正确的。①识别数据状态验证测试案例。②初始数据提供了基线用来评估测试执行的结果。③业务数据提供负载压力背景。④脚本中参数数据真实模拟负载。
结构化分析(StructuredAnalysis,SA)是面向数据流的需求分析方法,______不属于SA工具。A.分层的数据流图B.数据词典C.问题分析图D.描述加工逻辑的结构化语言、判定表或判定树
某文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况。若系统中字长为32位,磁盘上的物理块依次编号为:0、1、2、…,那么8192号物理块的使用情况在位示图中的第(12)个字中有所描述。
针对程序段:IP(A||B||C)THENW=W/X,对于(A,B,C)的取值,(57)测试用例能够满足MCDC(修正条件逻辑判定)的要求。
以下关于边界值分析法的叙述中,不正确的是
随机试题
简述产业资本实现资本循环和价值增殖的过程。
医疗卫生监督的内容有哪些?
广播电视中工艺用房系统设备安装之前,应检查()。
关于股票发行公告,以下表述错误的是()。
甲公司7月1日购入B公司股票10万股,每股价格14元,作为交易性金融资产核算。当年7月31日,该股票每股公允价值15元。则下列说法中正确的有()。
根据企业国有资产法律制度的规定,资产评估档案的保存期限不得少于()。
一旦开始你的职业生涯,你将要么是管理者要么是被管理者,对计划进入管理行列的人而言,理解管理过程将构成你的管理技能的基础,对不想成为管理者的人而言,你仍然是和管理者打交道。即使你不是一个管理者,你也可能承担某些管理职责。事实上,你可以不必渴望成为管理者,但你
“与其守成法,毋宁尚自然;与其求划一,毋宁展个性。”提出这种主张的教育家是()
团队精神
下列关于PC机性能的叙述中,错误的是
最新回复
(
0
)