#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;
}