【发布时间】:2012-11-20 04:48:47
【问题描述】:
所以我有一个链表实现,结构看起来像这样:
typedef struct channel_db{
unsigned int channel_id; //Channel ID
unsigned int node_id; //Node ID
unsigned int channel_size; //Channel data size (bytes)
unsigned int channel_period; //Channel data period (ms)
double actual_bw;
double required_bw;
unsigned int compression;
struct channel_db *next;
struct channel_db *previous;
}CHANNEL_DB;
在我的代码中的某个时间点,我需要搜索列表中满足特定要求的所有节点,例如,actual_bw 高于特定阈值并返回满足该要求的所有 channel_id。有没有一种简单的方法可以做到这一点,或者我应该为此目的创建另一个链接列表?
【问题讨论】:
-
我自己只使用指向节点元素的指针向量。即
vector<channel_db*> listOfMatchingNodes; -
@enhzflep - 这是一个 C++ 特性。
-
也许做两遍:一次确定你有多少匹配,另一次用匹配填充动态分配的数组。
-
@enhzflep 我忘了说我是用 C 而非 C++ 编码的。
-
返回ptr到ptrs。 end 可以通过 NULL 来标识
标签: c list linked-list