mirror of
https://github.com/zlgopen/awtk.git
synced 2025-05-08 19:44:45 +08:00
add slist_tail/slist_head
This commit is contained in:
parent
90ef05a47f
commit
cd34c329b0
@ -3,6 +3,7 @@
|
||||
2023/06/21
|
||||
* 修复action\_thread quit时间过长问题(感谢兆坤提供补丁)。
|
||||
* 完善dialog的注释(感谢泽武提供补丁)
|
||||
* 增加函数slist\_tail/slist\_head。
|
||||
|
||||
2023/06/20
|
||||
* 修复 widget\_get\_style 获取非当前状态的 mutable 风格失败的问题(感谢智明提供补丁)
|
||||
|
@ -218,6 +218,33 @@ void* slist_head_pop(slist_t* slist) {
|
||||
return data;
|
||||
}
|
||||
|
||||
void* slist_tail(slist_t* slist) {
|
||||
slist_node_t* iter = NULL;
|
||||
return_value_if_fail(slist != NULL, NULL);
|
||||
|
||||
iter = slist->first;
|
||||
return_value_if_fail(iter != NULL, NULL);
|
||||
|
||||
while (iter->next != NULL) {
|
||||
iter = iter->next;
|
||||
}
|
||||
|
||||
return iter->data;
|
||||
}
|
||||
|
||||
void* slist_head(slist_t* slist) {
|
||||
slist_node_t* iter = NULL;
|
||||
return_value_if_fail(slist != NULL, NULL);
|
||||
|
||||
iter = slist->first;
|
||||
if (iter == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return iter->data;
|
||||
}
|
||||
|
||||
|
||||
bool_t slist_is_empty(slist_t* slist) {
|
||||
return_value_if_fail(slist != NULL, TRUE);
|
||||
return slist->first == NULL;
|
||||
|
@ -204,6 +204,24 @@ void* slist_tail_pop(slist_t* slist);
|
||||
*/
|
||||
void* slist_head_pop(slist_t* slist);
|
||||
|
||||
/**
|
||||
* @method slist_tail
|
||||
* 返回最后一个元素。
|
||||
* @param {slist_t*} slist 单向链表对象。
|
||||
*
|
||||
* @return {void*} 成功返回最后一个元素,失败返回NULL。
|
||||
*/
|
||||
void* slist_tail(slist_t* slist);
|
||||
|
||||
/**
|
||||
* @method slist_head
|
||||
* 返回第一个元素。
|
||||
* @param {slist_t*} slist 单向链表对象。
|
||||
*
|
||||
* @return {void*} 成功返回最后一个元素,失败返回NULL。
|
||||
*/
|
||||
void* slist_head(slist_t* slist);
|
||||
|
||||
/**
|
||||
* @method slist_is_empty
|
||||
* 列表是否为空。
|
||||
|
@ -83,8 +83,21 @@ TEST(SList, tail_pop) {
|
||||
ASSERT_EQ(slist_append(s, TO_POINTER(4)), RET_OK);
|
||||
ASSERT_EQ(slist_append(s, TO_POINTER(5)), RET_OK);
|
||||
|
||||
ASSERT_EQ(TO_INT(slist_tail(s)), 5);
|
||||
ASSERT_EQ(TO_INT(slist_tail(s)), 5);
|
||||
ASSERT_EQ(TO_INT(slist_tail(s)), 5);
|
||||
ASSERT_EQ(slist_size(s), 5);
|
||||
|
||||
ASSERT_EQ(TO_INT(slist_head(s)), 1);
|
||||
ASSERT_EQ(TO_INT(slist_head(s)), 1);
|
||||
ASSERT_EQ(TO_INT(slist_head(s)), 1);
|
||||
ASSERT_EQ(slist_size(s), 5);
|
||||
|
||||
ASSERT_EQ(TO_INT(slist_tail_pop(s)), 5);
|
||||
ASSERT_EQ(TO_INT(slist_tail(s)), 4);
|
||||
|
||||
ASSERT_EQ(TO_INT(slist_head_pop(s)), 1);
|
||||
ASSERT_EQ(TO_INT(slist_head(s)), 2);
|
||||
|
||||
ASSERT_EQ(slist_size(s), 3);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user