设计地理要素三大实体之一的点实体的数据结构,应包含名称,ID号,三维坐标.设计以上述点实体为对象的循环队列结构;设计上述循环队列的操作算法,含入队,出队等基本算法;设计一个简单

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 14:18:23
设计地理要素三大实体之一的点实体的数据结构,应包含名称,ID号,三维坐标.设计以上述点实体为对象的循环队列结构;设计上述循环队列的操作算法,含入队,出队等基本算法;设计一个简单

设计地理要素三大实体之一的点实体的数据结构,应包含名称,ID号,三维坐标.设计以上述点实体为对象的循环队列结构;设计上述循环队列的操作算法,含入队,出队等基本算法;设计一个简单
设计地理要素三大实体之一的点实体的数据结构,应包含名称,ID号,三维坐标.
设计以上述点实体为对象的循环队列结构;
设计上述循环队列的操作算法,含入队,出队等基本算法;
设计一个简单主程序,验证上述数据结构和算法的可行性和正确性;
上述内容均在VC环境下,以C语言编程实现.

设计地理要素三大实体之一的点实体的数据结构,应包含名称,ID号,三维坐标.设计以上述点实体为对象的循环队列结构;设计上述循环队列的操作算法,含入队,出队等基本算法;设计一个简单
#include
#include
#define POS_NAME_MAX_LEN 10
typedef struct pos_st{
int id;
char name[POS_NAME_MAX_LEN];
int pos_x;
int pos_y;
int pos_z;
//其他属性...
}POS;
// 以上为1
typedef struct pos_cirLink{
POS pos_t;
struct pos_cirLink *pNext;
}POS_CIRLINK;
// 以上为:2 设计以上述点实体为对象的循环队列结构
//注意:程序里边的插入和删除是根据ID号来操作
// 故而这里的ID必须是唯一的.
POS_CIRLINK *g_pPosLinkHead = NULL; //define global head
// 添加一个结点
int insert_one_item(POS *pPos)
{
POS_CIRLINK *pos_node,*p_tmp;
pos_node = malloc(sizeof(POS_CIRLINK));
if (pos_node == NULL)
{
return 0;
}
memcpy(pos_node,pPos,sizeof(POS_CIRLINK));
if (g_pPosLinkHead == NULL) //first node
{
g_pPosLinkHead = pos_node;
pos_node->pNext = pos_node;
}
else
{
//first,nail
p_tmp = g_pPosLinkHead;
while(p_tmp->pNext != g_pPosLinkHead)
p_tmp = p_tmp->pNext;
p_tmp->pNext = pos_node;
//second,head
p_tmp = g_pPosLinkHead;
g_pPosLinkHead = pos_node;
pos_node->pNext = p_tmp;
}
return 1;
}
// 删除一个结点
int delete_one_item(int id)
{
POS_CIRLINK *p_node,*p_cur,*p_tmp;
p_cur = p_node = g_pPosLinkHead;
if (p_cur == NULL) //there is no node to delete
return 0;
if (p_cur->pNext == p_cur) //only one node
{
if (p_cur->pos_t.id == id)
{
free(g_pPosLinkHead);
g_pPosLinkHead = NULL;
return 1;
}
else
{
return 0;
}
}
//find the node to delete
while ( p_node )
{
if (p_node->pos_t.id == id)
{
break;
}
p_node = p_node->pNext;
if (p_node == g_pPosLinkHead) //nail,break
break;
}
if (p_node->pos_t.id == id)
{
p_tmp = p_node->pNext;
//nail change
p_cur = p_tmp;
while(p_cur->pNext != p_node)
{
p_cur = p_cur->pNext;
}
p_cur->pNext = p_node->pNext;
//head change
free(p_node);
//if it is the first node,modify the g_pPosLinkHead
if (p_node == g_pPosLinkHead)
g_pPosLinkHead = p_tmp;
}
else //not found
{
return 0;
}
}
//以上为:3 设计上述循环队列的操作算法,含入队、出队等基本算法.
int main()
{
//int tmp_id;
POS tmp_pos;
//insert first node
tmp_pos.id = 1;
strcpy(tmp_pos.name,"aaaa");
tmp_pos.pos_x = tmp_pos.pos_y = tmp_pos.pos_z = 11;
insert_one_item(&tmp_pos);
//insert second node
tmp_pos.id = 2;
strcpy(tmp_pos.name,"bbbbb");
tmp_pos.pos_x = tmp_pos.pos_y = tmp_pos.pos_z = 22;
insert_one_item(&tmp_pos);
//insert third node
tmp_pos.id = 3;
strcpy(tmp_pos.name,"ccccc");
tmp_pos.pos_x = tmp_pos.pos_y = tmp_pos.pos_z = 33;
insert_one_item(&tmp_pos);
//insert...
//delete the second node
delete_one_item(2);
return 1;
}
//以上为:4 设计一简单主程序,验证上述数据结构和算法的可行性和正确性.
//以上,已经测试验证通过.

!!

你是武大遥感院的吧

设计地理要素三大实体之一的点实体的数据结构,应包含名称,ID号,三维坐标.设计以上述点实体为对象的循环队列结构;设计上述循环队列的操作算法,含入队,出队等基本算法;设计一个简单 数据结构实习题目:设计地理要素三大实体之一的点实体的数据结构,应包含名称,ID号,三维坐标.设计以上述点实体为对象的循环队列结构;设计上述循环队列的操作算法,含入队,出队等基本 构成中国古典园林的实体要素有哪些,论述他们的设计手法? 地理空间实体的三要素是什么啊? caxa实体设计怎样画矩形圆柱体不是,是一个圆柱体折成个大的长方形。 实体的最小粒度, 简述斯宾诺莎的“实体” 子实体的作用 什么是数据的持久化、实体Bean的概念 机械精度设计与测量技术方面的问题,按国家标准规定,最大实体要求应用于被测要素及其对应的基准要素时,若该基准要素本身采用独立原则,则该基准要素应遵守的边界为A最大实体边界,B最大 数据库的几个基本概念,数据,对象,实体,属性,数据模型如何将实体抽象成数据模型这类的 为什么说信息是构成世界的“三大要素”之一?另外两大要素是什么 实体模型的表示方法 简述亚里士多德的实体学说 英语翻译实体书上的英文翻译 什么是真菌的子实体? 实体店铺的英文怎么说 如果要测量一个实体,但是实体都是曲面,基准怎么取?实体的所有尺寸.