GLib双向链表
来源:互联网 发布:开淘宝需要多少资金 编辑:程序博客网 时间:2024/04/30 14:26
#include <stdio.h>
#include <glib.h>
/**
*显示双向链表的内容
*/
void display_list(GList *list)
{
GList* it=NULL;
for(it=list;it;it=it->next)
{
g_printf("%s\t",it->data);
}
printf("\n");
}
int main(int agrc ,char **argv)
{
GList* list=NULL;
//向链表尾部追加节点
list=g_list_append(list,"hello1");
list=g_list_append(list,"hello2");
list=g_list_append(list,"hello3");
display_list(list);
//向链表头部追加节点
list=g_list_prepend(list,"zero");
display_list(list);
//查找链表中的节点
GList* it=NULL;
it=g_list_find(list,"hello2");
printf("find hello2 ,it's value=%s\n",it->data);
//确定链表指向第几个节点
int index=0;
index=g_list_position(list,it);
printf("hello2 index postion=%d\n",index);
//获取链表特定位置的置
it = g_list_nth(list, 1);
printf("%s/n", it->data);
//从链表中删除一个元素
list=g_list_remove(list,"hello3");
display_list(list);
//向链表中插入个元素
list=g_list_insert(list,"hello3-",3);
display_list(list);
//采用内循环遍历链表节点
//g_list_foreach(list, (GFunc)printf, NULL);
// printf("\n");
//取链表的最后一个节点
GList* last = g_list_last(list);
//从最后一个节点开始遍历链表
for (it = last; it; it = it->prev) {
printf("%s", it->data);
}
printf("\n");
//释放链表
g_list_free(list);
return 0;
}
#include <glib.h>
/**
*显示双向链表的内容
*/
void display_list(GList *list)
{
GList* it=NULL;
for(it=list;it;it=it->next)
{
g_printf("%s\t",it->data);
}
printf("\n");
}
int main(int agrc ,char **argv)
{
GList* list=NULL;
//向链表尾部追加节点
list=g_list_append(list,"hello1");
list=g_list_append(list,"hello2");
list=g_list_append(list,"hello3");
display_list(list);
//向链表头部追加节点
list=g_list_prepend(list,"zero");
display_list(list);
//查找链表中的节点
GList* it=NULL;
it=g_list_find(list,"hello2");
printf("find hello2 ,it's value=%s\n",it->data);
//确定链表指向第几个节点
int index=0;
index=g_list_position(list,it);
printf("hello2 index postion=%d\n",index);
//获取链表特定位置的置
it = g_list_nth(list, 1);
printf("%s/n", it->data);
//从链表中删除一个元素
list=g_list_remove(list,"hello3");
display_list(list);
//向链表中插入个元素
list=g_list_insert(list,"hello3-",3);
display_list(list);
//采用内循环遍历链表节点
//g_list_foreach(list, (GFunc)printf, NULL);
// printf("\n");
//取链表的最后一个节点
GList* last = g_list_last(list);
//从最后一个节点开始遍历链表
for (it = last; it; it = it->prev) {
printf("%s", it->data);
}
printf("\n");
//释放链表
g_list_free(list);
return 0;
}
0 0
- GLib双向链表
- glib库双向链表GList介绍
- glib库双向链表GList介绍
- GLib双向链表@GTK+ 2.0 中文教程连载
- glib中单双向链表的归并排序
- Glib学习(2) 双向链表 Doubly-Linked Lists
- GLIB容器 链表 双向链表 HASH表 TREE 的使用
- C 工具库 GLib --- 提供多种高级的数据结构,如内存块、双向和单向链表、哈希表、动态字符串等
- glib库单向链表GSList介绍
- glib库单向链表GSList介绍
- glib
- GLib
- Glib
- glib
- glib
- SzNOI 双向约瑟夫(双向链表)
- GLib单向链表@GTK+ 2.0 中文教程连载
- 双向链表&&堆栈
- java枚举使用详解
- Android之launcher学习(三)
- 项目开发经验分享—漂亮的弹出框效果
- 多柱汉诺塔最优算法设计探究
- github开源Android组件资源整理(五)ScrollView, TimeView, TipView, FlipView, ColorPickView
- GLib双向链表
- SSH的一些简单理解
- 项目开发经验分享—分页查询
- Android之launcher学习(四)
- 【运筹学】第一遍宏观总结
- Java语言程序设计-基础篇-4.19编程-金字塔
- Core Java笔记—第6章 接口与内部类
- Perl Tk设置标签字体
- Linux内核分析(三)