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

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 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;
}

//添加一個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;
}
//刪除一個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é)點, pos->prev指向前一個節(jié)點.這里的節(jié)點是
        struct my_list
類型. 但是,我們需要訪問節(jié)點本身,而不是節(jié)點中的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 肥仔 閱讀(241) 評論(0)  編輯 收藏 引用 所屬分類: C++ 基礎

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久亚洲影院你懂的| 尹人成人综合网| 欧美在线网址| 久久九九免费视频| 久久亚洲春色中文字幕| 牛牛影视久久网| 欧美国产日韩二区| 欧美日本不卡高清| 欧美午夜宅男影院在线观看| 欧美午夜免费影院| 国产一区二区欧美| 在线看欧美视频| 亚洲伦理在线| 欧美一区日韩一区| 麻豆视频一区二区| 亚洲国产精品嫩草影院| 91久久国产综合久久| 亚洲天堂网在线观看| 久久精品国产69国产精品亚洲| 老司机精品视频一区二区三区| 另类酷文…触手系列精品集v1小说| 狼人社综合社区| 亚洲精品久久嫩草网站秘色 | 国产偷国产偷亚洲高清97cao| 国产一区二区| 在线不卡a资源高清| 一本色道久久综合亚洲91| 欧美专区中文字幕| 亚洲国产99| 小处雏高清一区二区三区| 免费不卡中文字幕视频| 国产精品一区在线观看| 91久久国产精品91久久性色| 午夜精品影院| 亚洲三级免费电影| 久久久精品网| 国产精品美女久久久免费| 亚洲日本va午夜在线影院| 羞羞答答国产精品www一本| 亚洲国产专区| 久久一区亚洲| 国产主播在线一区| 欧美在线高清视频| 亚洲在线黄色| 欧美日韩在线播放| 亚洲精品日韩一| 欧美成人r级一区二区三区| 亚洲欧美日韩中文在线制服| 欧美日韩伦理在线免费| 亚洲欧洲日韩在线| 欧美高清视频在线观看| 性8sex亚洲区入口| 国产精品一区在线观看| 亚洲欧美日韩国产成人| 99国内精品久久| 欧美精品亚洲一区二区在线播放| 亚洲国产精品va在线看黑人动漫| 久久久久久尹人网香蕉| 午夜精品影院| 国产亚洲精品bt天堂精选| 午夜精品久久久久久久蜜桃app| 亚洲美女一区| 欧美深夜影院| 午夜免费在线观看精品视频| 中文欧美日韩| 国产精品一页| 久久久久一区二区三区四区| 午夜激情亚洲| 激情五月综合色婷婷一区二区| 久久久久久色| 久热这里只精品99re8久| 亚洲高清视频中文字幕| 欧美国产日韩二区| 欧美伦理a级免费电影| 亚洲美女免费精品视频在线观看| 亚洲欧洲另类国产综合| 欧美视频四区| 久久久久久亚洲精品杨幂换脸| 欧美大片18| 免费亚洲一区二区| 99热这里只有精品8| 亚洲视频一区| 国外视频精品毛片| 欧美国产日韩一二三区| 欧美日韩三级| 久久国产精品一区二区| 久久久久在线观看| 99视频精品在线| 亚洲男人的天堂在线| 国产一区观看| 亚洲精品免费在线播放| 国产精品久久久久久久久免费桃花 | 国内成+人亚洲+欧美+综合在线| 欧美成年人网站| 欧美日韩一区二区在线播放| 久久av一区二区| 欧美风情在线观看| 久久精品99国产精品| 欧美aⅴ一区二区三区视频| 亚洲欧美另类在线观看| 老司机aⅴ在线精品导航| 亚洲欧美成人综合| 久久一区激情| 欧美一区二区三区久久精品| 狂野欧美激情性xxxx欧美| 亚洲一区二区动漫| 久久久人人人| 香蕉视频成人在线观看| 欧美成人一区二区三区在线观看| 亚洲欧美日韩在线观看a三区| 麻豆91精品91久久久的内涵| 小辣椒精品导航| 欧美日韩视频在线第一区| 老牛影视一区二区三区| 国产精品久线观看视频| 亚洲日本免费| 亚洲国产另类 国产精品国产免费| 亚洲欧美另类综合偷拍| 亚洲视频专区在线| 欧美二区不卡| 久久一二三四| 国产偷自视频区视频一区二区 | 葵司免费一区二区三区四区五区| 午夜一区二区三区在线观看| 欧美—级高清免费播放| 欧美激情欧美狂野欧美精品| 狠狠久久亚洲欧美| 亚洲欧美日韩专区| 午夜天堂精品久久久久| 国产精品家教| 中文网丁香综合网| 亚洲香蕉成视频在线观看 | 亚洲男人的天堂在线aⅴ视频| 亚洲毛片一区二区| 欧美专区日韩专区| 久久激情综合| 国产一区二区三区久久| 午夜久久黄色| 国产精品国产三级国产专播品爱网| 国产亚洲一级高清| 亚洲欧美国产精品va在线观看| 中文亚洲视频在线| 欧美久久久久久久久久| 欧美激情在线有限公司| 亚洲国产精品第一区二区| 久久久久久久一区二区| 欧美99在线视频观看| 亚洲国产日韩在线一区模特| 久久综合伊人| 亚洲人在线视频| 亚洲一区二区三区午夜| 国产精品一区久久| 久久精品国产第一区二区三区最新章节| 久久久一区二区三区| 亚洲国产日韩在线一区模特| 欧美人与性动交cc0o| 亚洲小说欧美另类社区| 久久伊人免费视频| 亚洲国产专区| 欧美日韩免费观看中文| 亚洲欧美经典视频| 欧美va天堂| 亚洲永久免费| 在线成人激情黄色| 欧美日韩国产综合新一区| 亚洲一区二区成人在线观看| 久久天堂精品| 在线一区二区日韩| 国产亚洲视频在线| 欧美福利在线| 欧美亚洲免费电影| 亚洲国产精品一区二区www| 亚洲影院色无极综合| 在线观看日韩av电影| 欧美三级网页| 久热精品视频在线观看| 亚洲一区二区在线视频| 欧美不卡在线视频| 午夜视频精品| 9人人澡人人爽人人精品| 国产一区二区0| 欧美日韩精品免费看| 久久精品五月| 亚洲一二三区精品| 亚洲国产日韩美| 久久久久网址| 午夜视频久久久| 一区二区三区精品视频在线观看| 国产一区二区久久久| 国产精品高清网站| 欧美成人精品影院| 久久久999精品免费| 亚洲制服丝袜在线| 99亚洲视频| 亚洲人成在线播放网站岛国| 久久精品一区中文字幕| 亚洲欧美成人精品| 一级成人国产| 亚洲人人精品| 亚洲高清视频在线观看|