免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1222 | 回复: 0
打印 上一主题 下一主题

glib学习笔记2 使用glib链表 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-22 16:14 |只看该作者 |倒序浏览
glib学习笔记 2
使用glib提供的链表
转载请注明出处,或联系 fanyuanmail@126.com
在写程序中经常会用到一些对链表的操作,很多时候自己维护一套函数。其实在glib中有一个现成的list可以使用
Doubly-Linked Lists - linked lists containing integer values or pointers to data, with the ability to iterate over the list in both directions
Singly-Linked Lists - linked lists containing integer values or pointers to data, limited to iterating over the list in one direction
glib提供了一个双向链表和一个单向链表。下面这个例子是对链表进行追加,然后逆序,使用起来非常简单,现在越来越喜欢这个库了。
1.首先对链表增加了三个node
2.遍历整个链表
3.对链表逆序
4.遍历整个链表
1 #include
  2 int count=0;
  3
  4 void print_data(char* data)
  5 {
  6         count++;
  7         printf("count %d\n data is %s\n",count,data);
  8 }
  9
10 int main(int argc, char *argv[])
11 {
12         GList* list=NULL;
13         GList* newlist;
14         list=g_list_append(list, "first");
15         list=g_list_append(list, "second");
16         list=g_list_append(list, "third");
//print_data要求传递一个函数
17         g_list_foreach(list,print_data,list->data);
18         g_printf("reverse the list\n");
19         newlist=g_list_reverse(list);
20         g_list_foreach(newlist,print_data,newlist->data);
21         return 0;
22 }
执行结果
[root@dhcp-cbjs05-218-247 glib_study]# ./glist_test
count 1
data is first
count 2
data is second
count 3
data is third
reverse the list
count 4
data is third
count 5
data is second
count 6
data is first
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/58855/showart_1734814.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP