青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
數(shù)據(jù)加載中……

linux中的鏈表

//include/linux/list.h
struct list_head {                    
   
struct list_head *next, *prev; 
};


#define LIST_HEAD_INIT(name) { &(name), &(name) }
#define LIST_HEAD(name) struct list_head name = LIST_HEAD_INIT(name)

#define INIT_LIST_HEAD(ptr) do { \
    (ptr)->next = (ptr); (ptr)->prev = (ptr); \
}
while (0)

static inline void __list_add(struct list_head * newnode,
                                 
struct list_head * prev,
                                 
struct list_head * next)
{
    next->prev = newnode;
    newnode->next = next;
    newnode->prev = prev;
    prev->next = newnode;
}

//添加一個(gè)node
static inline void list_add(struct list_head *newnode, struct list_head *head)
{
    __list_add(newnode, head, head->next);
}


static inline void list_add_tail(struct list_head *newnode, struct list_head *head)
{
    __list_add(newnode, head->prev, head);
}

static inline int list_empty(struct list_head *head)
{
   
return head->next == head;
}

static inline void __list_del(struct list_head * prev,
                                 
struct list_head * next)
{
    next->prev = prev;
    prev->next = next;
}
//刪除一個(gè)node
static inline void list_del(struct list_head *entry)
{
    __list_del(entry->prev, entry->next);
    entry->next = entry->prev =
0;
}

#define list_for_each_safe(pos, n, head) \
   
for (pos = (head)->next, n = pos->next; pos != (head); \
        pos = n, n = pos->next)

#define list_for_each(pos, head) \
   
for (pos = (head)->next; pos != (head); \
            pos = pos->next)

#define list_entry(ptr, type, member) \
    ((type *)((
char *)(ptr)-(unsigned long)(&((type *)0)->member)))

/*******************************
**
指針ptr指向結(jié)構(gòu)體type中的成員member
**
通過指針ptr,返回結(jié)構(gòu)體type的起始地址
            type

        |----------|
        |           |
        |           |
        |----------|
ptr-->| member --|
        |----------|
        |              |
        |              |
        |----------|
********************************/


//test_list.c

#include <stdio.h>
#include <stdlib.h>

//#include
"ilist.h"


struct my_list{
   
struct list_head list;
   
char value[10];
};

int main(int argc, char **argv){
   
   
struct my_list *tmp;
   
struct list_head *pos, *q;
    unsigned
int i;
   
   
struct my_list mylist;
    INIT_LIST_HEAD(&mylist.list);
/*初始化鏈表頭*/
   
   
/* mylist增加元素 */
   
for(i=3; i!=0; --i){
        tmp= (
struct my_list *)malloc(sizeof(struct my_list));
       
       
/* 或者INIT_LIST_HEAD(&tmp->list); */
        printf(
"enter value:");
        scanf(
"%s", tmp->value);
       
       
        list_add(&(tmp->list), &(mylist.list));
       
/* 也可以用list_add_tail() 在表尾增加元素*/
    }
    printf(
"\n");
   
    printf(
"traversing the list using list_for_each()\n");
    list_for_each(pos, &mylist.list){
       
   
/* 在這里 pos->next 指向next 節(jié)點(diǎn), pos->prev指向前一個(gè)節(jié)點(diǎn).這里的節(jié)點(diǎn)是
        struct my_list
類型. 但是,我們需要訪問節(jié)點(diǎn)本身,而不是節(jié)點(diǎn)中的list字段,
       
list_entry()正是為此目的。*/
    
       
    tmp= list_entry(pos,
struct my_list, list);
    printf(
"%s ", tmp->value);
    }
    printf(
"\n");


    printf(
"deleting the list using list_for_each_safe()\n");
    list_for_each_safe(pos, q,&mylist.list){
        tmp= list_entry(pos,
struct my_list, list);
        printf(
"%s ", tmp->value);
        list_del(pos);
        free(tmp);
    }
}

 

posted on 2009-06-20 03:27 肥仔 閱讀(245) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C++ 基礎(chǔ)

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品一区在线播放| av成人毛片| 极品少妇一区二区三区| 欧美激情影音先锋| 老司机午夜精品视频在线观看| 亚洲无线一线二线三线区别av| 欧美激情中文不卡| 亚洲电影观看| 欧美成人激情视频免费观看| 小处雏高清一区二区三区| 一本到12不卡视频在线dvd| 亚洲电影第三页| 亚洲国产日韩欧美在线图片| 亚洲黄色在线观看| 日韩系列在线| 99视频精品全部免费在线| 国产欧美精品一区二区三区介绍| 欧美成人国产| 久久久欧美一区二区| 欧美不卡三区| 一二三区精品福利视频| 一区二区三区高清不卡| 国产精品播放| 久久亚洲图片| 久久久在线视频| 国产日韩欧美一区二区| 亚洲视频导航| 亚洲欧洲精品天堂一级| 久久一区视频| 亚洲无毛电影| 国产精品乱人伦中文| 日韩视频免费在线| 亚洲日本中文字幕区 | 亚洲一区二区不卡免费| 欧美一级黄色录像| 亚洲成色777777女色窝| 久久综合九色综合欧美狠狠| 亚洲免费观看高清在线观看| 亚洲欧美日韩另类| 在线成人免费观看| 国产精品色婷婷久久58| 香蕉久久一区二区不卡无毒影院| 欧美中文在线观看| 亚洲一区999| 欧美中文在线观看国产| 欧美风情在线| 久久久久9999亚洲精品| 国产自产在线视频一区| 欧美三区不卡| 亚洲国产片色| 欧美日韩ab| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 国产欧美日韩一区二区三区| 在线观看日韩av先锋影音电影院| 亚洲午夜极品| 99视频精品全国免费| 欧美日韩国产欧| 亚洲精品国产日韩| 欧美黄色aaaa| 欧美成人按摩| 最新精品在线| 亚洲经典在线看| 欧美va亚洲va日韩∨a综合色| 好看的日韩视频| 久久综合网色—综合色88| 欧美亚洲视频在线观看| 国产一区清纯| 欧美成人午夜77777| 免费在线成人av| 亚洲精品久久久蜜桃| 亚洲欧洲一区二区在线观看| 欧美巨乳波霸| 午夜精品福利视频| 欧美亚洲一区| 在线观看国产日韩| 亚洲人成小说网站色在线| 欧美三级日本三级少妇99| 亚洲欧美日韩中文播放| 午夜欧美不卡精品aaaaa| 亚洲一区在线观看免费观看电影高清| 亚洲欧美卡通另类91av| 国产午夜亚洲精品理论片色戒| 欧美一区二区三区男人的天堂 | 亚洲国产精品va在看黑人| 久热综合在线亚洲精品| 久久人体大胆视频| 亚洲欧洲久久| 亚洲视频在线观看免费| 国产综合色在线视频区| 欧美激情一区二区三区蜜桃视频 | 校园激情久久| 久久久久久综合网天天| 亚洲国产激情| 在线视频精品一| 国产亚洲制服色| 亚洲国产精品999| 国产精品福利在线观看| 卡一卡二国产精品| 欧美日韩精选| 久久综合电影一区| 欧美手机在线视频| 欧美成人免费视频| 国产精品视区| 91久久中文字幕| 国产真实精品久久二三区| 亚洲激情成人在线| 国产视频亚洲精品| 亚洲欧美日韩国产精品| 欧美夫妇交换俱乐部在线观看| 欧美va亚洲va国产综合| 国产综合久久| 久久久久久一区| 久久久亚洲一区| 亚洲人成在线播放| 欧美日韩精品一区二区在线播放| 欧美激情中文字幕乱码免费| 91久久精品日日躁夜夜躁国产| 久久人人97超碰国产公开结果| 久久婷婷国产麻豆91天堂| 国产一区二区精品久久| 久久色在线观看| 亚洲巨乳在线| 香蕉久久夜色精品| 伊人久久久大香线蕉综合直播| 久久久久久伊人| 亚洲区欧美区| 亚洲免费高清| 午夜精品一区二区三区在线视| 久久视频这里只有精品| 欧美日韩精品久久久| 麻豆成人av| 欧美成人a∨高清免费观看| 亚洲一区精品在线| 一区二区三区在线看| 久久久一区二区| 国产精品专区第二| 在线视频精品一区| 亚洲一区二区毛片| 欧美日韩一区在线播放| 亚洲精品久久久久| 99国产欧美久久久精品| 欧美激情视频网站| 亚洲电影免费在线观看| 在线观看欧美| 蜜桃av一区二区在线观看| 久热精品视频在线| 伊人久久婷婷色综合98网| 久久久噜噜噜久久中文字幕色伊伊| 久久久亚洲高清| 影音先锋国产精品| 欧美gay视频| 日韩天堂av| 欧美一区二区三区久久精品茉莉花| 国产欧美日韩综合精品二区| 欧美在线国产| 欧美激情一二三区| 亚洲视频免费在线| 国产欧美一区二区三区视频| 久久精品国产欧美激情| 亚洲福利视频免费观看| 中文在线一区| 国产视频一区在线观看| 美女精品视频一区| 99精品热视频| 久久精品卡一| 亚洲三级电影全部在线观看高清| 欧美日韩亚洲高清| 性欧美暴力猛交另类hd| 欧美激情久久久| 亚洲综合大片69999| 国内在线观看一区二区三区| 欧美精品国产精品日韩精品| 亚欧成人精品| 亚洲三级视频| 久久婷婷国产综合尤物精品| 99v久久综合狠狠综合久久| 国产精品高潮呻吟久久av无限 | 久久精品国产一区二区电影| 在线免费观看欧美| 国产精品久久久久久久久搜平片 | 国产欧美成人| 欧美成人性生活| 亚洲制服av| 亚洲国产欧美日韩精品| 久久九九热免费视频| 99亚洲一区二区| 伊人久久亚洲热| 在线视频中文亚洲| 欧美fxxxxxx另类| 久久精选视频| 一区二区三区亚洲| 欧美在线看片| 久久九九全国免费精品观看| 欧美日韩精品福利| 欧美一区二区免费| 久久精品国产亚洲精品| 亚洲电影一级黄| 亚洲欧洲日韩综合二区| 欧美人妖另类| 亚洲欧美视频在线观看视频|