单链表操作可如此简单
2012-03-22 18:36
375 查看
struct UserData { int value; struct UserData* next; }; static UserData* first_value = NULL; void RegisterUserData(UserData* data) { UserData** pp = &first_value; while (*pp) pp = &(*pp)->next; *pp = data; data->next = NULL; } void RegisterUserData2(UserData* data) { if (first_value == NULL) { first_value = data; } else { UserData* p = first_value; UserData* q = first_value->next; while (p && q) { p = q; q = p->next; } p->next = data; } data->next = NULL; } UserData* GetUserDataNext(UserData* data) { return data ? data->next : first_value; } UserData g_Data1 = { 10, NULL, }; UserData g_Data2 = { 20, NULL, }; UserData g_Data3 = { 30, NULL, }; int _tmain(int argc, _TCHAR* argv[]) { RegisterUserData(&g_Data1); RegisterUserData(&g_Data2); RegisterUserData(&g_Data3); UserData* pUserData = first_value; do { if (pUserData) printf("%d===== \n", pUserData->value); pUserData = GetUserDataNext(pUserData); }while(pUserData != NULL && pUserData != first_value); return 0; }
说明:
RegisterUserData()和RegisterUserData2()功能相同。
相关文章推荐
- 关于整理工作中用到的链表和哈希表的简单操作
- 一个简单的链表操作程序
- 链表的一些简单操作(修复里上一篇链表操作问题)
- 数据结构之链表与数组(二) -单向链表上的简单操作问题
- (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作
- Rxjava 操作数据库是如此简单
- c语言 之 双向链表 简单操作
- 二元多项式(简单链表操作,注释很好理解)
- (C语言版)链表(四)——实现双向循环链表创建、插入、删除、释放内存等简单操作
- 实现有头结点的单链表的简单操作
- 数据结构链表的简单操作
- Sqlla: 数据库操作从未如此简单
- 链表的一些简单操作
- 链表的简单操作
- 修改后的单链表简单操作
- 双向链表的简单操作
- 数据结构之链表与数组(二) -单向链表上的简单操作问题
- 数据结构之链表与数组(三)-单向链表上的简单操作
- 链表及其简单操作
- 链表简单操作