社区
数据结构与算法
帖子详情
请教两个问题????
drmao
2003-12-15 10:11:15
1.有一无序的顺序表可能有一个或一个以上的重复元素,要求用一个效率较高的算法删除所有的重复元素(即有重复就只留一个)
2.用C语言实现一个双端队列的基本算法。
...全文
66
4
打赏
收藏
请教两个问题????
1.有一无序的顺序表可能有一个或一个以上的重复元素,要求用一个效率较高的算法删除所有的重复元素(即有重复就只留一个) 2.用C语言实现一个双端队列的基本算法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
blueclu0281
2003-12-15
打赏
举报
回复
1
用扫描的办法可以吗?
2
是双向队列吗?
短歌如风
2003-12-15
打赏
举报
回复
1:先排序,然后去重复,时间复杂度为O(N*logN)——当选择O(N*logN)的排序算法时——或O(N)——当选择O(N)的排序算法时。
如果要求去重复后顺序不变,可以用一个BST或Hash实现的集合,如果元素不在集合中则删除,否则加入到集合。时间复杂度为O(N)*(O(Insert)+O(Find))
2:
可能有错误,自己改一下:
typedef int element_t;
#define COUNTPERNODE 64
typedef struct _node
{
struct _node* prev, *next;
element_t elem[COUNTPERNODE];
} node_t, *node_ptr_t;
typedef struct _queue
{
node_ptr_t first, last;
int first_index, last_index;
} queue_t, *queue_ptr_t;
int queue_isempty(queue_ptr_t queue)
{
assert(queue != NULL);
return = queue->first == NULL;
}
void queue_init(queue_ptr_t queue)
{
assert(queue != NULL);
queue->first = queue->last = NULL;
queue->first_index = queue->last_index = 0;
}
void queue_clear(queue_ptr_t queue)
{
assert(queue != NULL);
while(queue->first != NULL)
{
node_ptr_t node;
node = queue->first;
queue->first = node -> next;
free(node);
}
queue_init(queue);
}
void queue_push_back(queue_ptr_t queue, element_t value)
{
assert(queue != NULL);
if(queue->last == NULL)
{
queue->first = queue->last = (node_ptr_t)malloc(sizeof(node_t));
queue->first->prev = queue->first->next = NULL;
}
if (queue->last_index == COUNTPERNODE)
{
node_ptr_t node;
node = (node_ptr_t)malloc(sizeof(node_t));
queue->last ->next = node;
node->prev = queue->last;
node->next = NULL;
queue->last = node;
queue->last_index = 0;
}
queue->last->elem[queue->last_index++] = value;
}
element_t queue_pop_back(queue_ptr_t queue)
{
assert(queue != NULL && !queue_isempty(queue));
element_t result;
if(queue->last_index == 0)
{
node_ptr_t node;
node = queue->last;
queue->last = node->prev;
queue->last->next = NULL;
free(node);
queue->last_index = COUNTPERNODE;
}
result = queue->last->elem[--queue->last_index];
if (queue->last == queue->first && queue->last_index == queue->first_index)
{
free(queue->last);
queue_init(queue);
}
return result;
}
void queue_push_front(queue_ptr_t queue, element_t value)
{
assert(queue != NULL);
if(queue->last == NULL)
{
queue->first = queue->last = (node_ptr_t)malloc(sizeof(node_t));
queue->first->prev = queue->first->next = NULL;
}
if (queue->first_index == 0)
{
node_ptr_t node;
node = (node_ptr_t)malloc(sizeof(node_t));
queue->first ->prev = node;
node->next = queue->first;
node->prev = NULL;
queue->first = node;
queue->first_index = COUNTPERNODE;
}
queue->first->elem[--queue->first_index] = value;
}
element_t queue_pop_front(queue_ptr_t queue)
{
assert(queue != NULL && !queue_isempty(queue));
element_t result;
result = queue->first->elem[queue->first_index++];
if (queue->last == queue->first && queue->last_index == queue->first_index)
{
free(queue->last);
queue_init(queue);
}
else if(queue->first_index == COUNTPERNODE)
{
node_ptr_t node;
node = queue->first;
queue->first = node->next;
queue->first->prev = NULL;
free(node);
queue->first_index = 0;
}
return result;
}
ZeroZZZ000
2003-12-15
打赏
举报
回复
1、应该是先排序或建立索引效率会较高
2、是要数组队列还是链式队列啊?
drmao
2003-12-15
打赏
举报
回复
1。要求用较高的效率执行
typedef struct Sqlist{
ElemType *elem;
int length;
int size;
}SqList;
void DeleteRedundance(SqList *L){int i,j; int k=0;
for(i=0;i<L->length;++i){ k=0;
for(j=i+1;j<L->length;++j){
if(L->elem[j]==L->elem[i])++k;
else L->elem[j-k]=L->elem[j];
} L->length-=k;
}
}
2。是双向队列
64 位 NX2023 UG 稳定运行建模程序包.rar
UG(Unigraphics NX)是一款由西门子(Siemens PLM Software)开发的交互式CAD/CAM/CAE系统。作为全球领先的产品工程解决方案,它集成了产品设计、工程仿真与制造加工于一体。其功能强大且应用广泛,能够轻松实现各种复杂实体和造型的构造,为模具、汽车、航空航天及通用机械等行业提供了高性能的机械设计与制图灵活性。
NX2023 UG 64 位 全新升级建模程序下载.rar
软件概述 UG(Unigraphics NX)是一款由西门子(Siemens PLM Software)开发的交互式CAD/CAM/CAE系统。作为全球领先的产品工程解决方案,它集成了产品设计、工程仿真与制造加工于一体。其功能强大且应用广泛,能够轻松实现各种复杂实体和造型的构造,为模具、汽车、航空航天及通用机械等行业提供了高性能的机械设计与制图灵活性。 软件基础信息 • 支持系统: 64位 Windows 10、Windows 11 核心功能模块 一、创新设计:高效、灵活、无缝协同 全链路产品设计 涵盖从2D布局、3D建模、装配设计到图纸文档记录的各个环节,大幅提升设计吞吐量,缩短交付周期超35%。 强大的同步建模技术 打破数据壁垒,可无缝导入并直接修改来自其他CAD系统的几何模型,是跨平台协同设计的理想选择。 复杂装配管理 专为大型复杂产品打造,即使面对成千上万的零件也能从容应对,快速识别并解决数字样机中的干涉等
问题
。 集成设计验证 内置自动验证功能,实时监控设计是否符合公司及行业标准;结合PLM数据可视化合成,辅助工程师做出更明智的决策。 二、综合仿真(Simcenter 3D):精准预测,降低试错成本 极速前后处理 依托先进的几何引擎,将强大的分析命令与几何编辑紧密集成,相比传统有限元工具,可缩短高达70%的仿真建模时间。 全方位结构分析 在同一环境中集成线性静力学、动态、疲劳及非线性分析,底层由业界顶尖的NX Nastran解算器提供支持,确保计算的高精度与可靠性。 声学与热管理分析 提供内外声学仿真以优化音质、降低噪音;具备一流的热传导仿真能力,帮助电子产品和工业机械实现最佳热管理方案。 多物理场耦合 简化了结构动力学、热传导、流体流动等复杂物理现象的模拟过程,消除外部数据传输错误,真实还原产品运行工况。 三、智能制造(CAM):打通从计划到车间的数字主线 全面的制造解决方案 提供从工装设计、CAM编程到机床控制器(如Sinumerik)的一体化支持,助力制定更科学的生产决策。 深度集成的PLM环境 借助Teamcenter实现数据和流程的统一管理,避免多数据库冲突,支持重用验证过的加工工艺与刀具库。 车间级互联 通过DNC系统与车间无缝对接,直接将加工数据和刀具清单下发至CNC机床,实现计划与生产的紧密结合。 提质增效 优化NC编程与刀具路径,提升表面精加工水平与零件精度;减少人为错误,显著提高新机床部署成功率及制造资源利用率。 总结 UG NX 2023作为一款集成化的产品工程解决方案,通过其强大的设计、仿真和制造功能,为现代制造业提供了完整的数字化产品开发平台。无论是复杂产品的设计验证,还是精密制造的流程优化,UG NX 2023都能为工程师团队提供高效、可靠的解决方案,助力企业提升产品创新能力和市场竞争力。 适用领域 模具设计、汽车制造、航空航天、通用机械、消费电子等
NX2023 64 位 UG 实测体验佳 设计版本分享.rar
软件概述 UG(Unigraphics NX)是一款由西门子(Siemens PLM Software)开发的交互式CAD/CAM/CAE系统。作为全球领先的产品工程解决方案,它集成了产品设计、工程仿真与制造加工于一体。其功能强大且应用广泛,能够轻松实现各种复杂实体和造型的构造,为模具、汽车、航空航天及通用机械等行业提供了高性能的机械设计与制图灵活性。 软件基础信息 • 支持系统: 64位 Windows 10、Windows 11 核心功能模块 一、创新设计:高效、灵活、无缝协同 全链路产品设计 涵盖从2D布局、3D建模、装配设计到图纸文档记录的各个环节,大幅提升设计吞吐量,缩短交付周期超35%。 强大的同步建模技术 打破数据壁垒,可无缝导入并直接修改来自其他CAD系统的几何模型,是跨平台协同设计的理想选择。 复杂装配管理 专为大型复杂产品打造,即使面对成千上万的零件也能从容应对,快速识别并解决数字样机中的干涉等
问题
。 集成设计验证 内置自动验证功能,实时监控设计是否符合公司及行业标准;结合PLM数据可视化合成,辅助工程师做出更明智的决策。 二、综合仿真(Simcenter 3D):精准预测,降低试错成本 极速前后处理 依托先进的几何引擎,将强大的分析命令与几何编辑紧密集成,相比传统有限元工具,可缩短高达70%的仿真建模时间。 全方位结构分析 在同一环境中集成线性静力学、动态、疲劳及非线性分析,底层由业界顶尖的NX Nastran解算器提供支持,确保计算的高精度与可靠性。 声学与热管理分析 提供内外声学仿真以优化音质、降低噪音;具备一流的热传导仿真能力,帮助电子产品和工业机械实现最佳热管理方案。 多物理场耦合 简化了结构动力学、热传导、流体流动等复杂物理现象的模拟过程,消除外部数据传输错误,真实还原产品运行工况。 三、智能制造(CAM):打通从计划到车间的数字主线 全面的制造解决方案 提供从工装设计、CAM编程到机床控制器(如Sinumerik)的一体化支持,助力制定更科学的生产决策。 深度集成的PLM环境 借助Teamcenter实现数据和流程的统一管理,避免多数据库冲突,支持重用验证过的加工工艺与刀具库。 车间级互联 通过DNC系统与车间无缝对接,直接将加工数据和刀具清单下发至CNC机床,实现计划与生产的紧密结合。 提质增效 优化NC编程与刀具路径,提升表面精加工水平与零件精度;减少人为错误,显著提高新机床部署成功率及制造资源利用率。 总结 UG NX 2023作为一款集成化的产品工程解决方案,通过其强大的设计、仿真和制造功能,为现代制造业提供了完整的数字化产品开发平台。无论是复杂产品的设计验证,还是精密制造的流程优化,UG NX 2023都能为工程师团队提供高效、可靠的解决方案,助力企业提升产品创新能力和市场竞争力。 适用领域 模具设计、汽车制造、航空航天、通用机械、消费电子等
数据结构与算法
33,026
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章