首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >路由表实现:链表与数组

路由表实现:链表与数组
EN

Stack Overflow用户
提问于 2014-04-11 09:30:13
回答 1查看 931关注 0票数 0

我试图在BTLE物理层和链路层上实现我自己的路由协议,以便为BTLE无线电建立一个多跳链路。我用的是Cortex-M0处理器。我的路由表结构基本如下:

代码语言:javascript
运行
复制
|Neighbour Address| Info about Link quality | Possible Destination Addr|

邻居地址将具有近邻地址,而可能的目的地地址字段将有可以从该特定邻居到达的目的地地址(在一跳内)(路由只支持2跳通信)。简而言之,可能的目的地将有在邻居地址中的元素的条目。

我正在用CodeSorcery工具链实现这一点。因此,对于构建路由表,应该使用链接列表还是使用数组?使用数组将比实现链接列表更容易,但随后,数组的大小将被预先定义和限制。另外,在初始化时,它将占用所有专用于它的空间。实际上,为路由表预留空间,这样以后就不会造成内存问题了吗?还是应该是在数据分配方面更灵活的链接列表?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-17 20:58:37

最好的数据结构是两者兼而有之。您可以在“块”中分配地址表。每个块将包含多个路由表条目和下一个指针。填充块后,可以分配下一个块并在前一个块下一个指针中填充它的地址。

这种结构两者兼得,您可以获得简单表扫描的速度和链接列表的灵活性。

你的网络会有多大?对于非常大的网络,简单表将是性能瓶颈,因此您应该考虑使用前缀哈希表,这样就不需要遍历整个表来查找特定的邻居。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23008709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档