首頁  >  文章  >  後端開發  >  ngx_queue_t雙向鍊錶

ngx_queue_t雙向鍊錶

WBOY
WBOY原創
2016-08-08 09:20:191136瀏覽

ngx_queue_t 雙向鍊錶

結構

<code><span>typedef</span><span>struct</span> ngx_queue_s ngx_queue_t;
<span>typedef</span><span>struct</span> ngx_queue_s {
    ngx_queue_t *prev;
    ngx_queue_t *next;
};</code>

整個鍊錶的結構就是:有一個空的頭,這個頭用作鍊錶的起始和哨兵(遍歷時用到),接著用下面的方法向這個頭的後續位置加節點。


容器提供的方法

鍊錶容器初始化,空鍊錶ngx_queue_empty(h)同上檢查鍊錶是否為空nxg_queue_insert_head(h,x)h,x為待針插針,x為待插針nxg_queue_insert_head(h,x )同上尾插法ngx_queue_head(h)同上返回頭指標同上同上ngx_queue_add(h,n)ngx_queue_middle(h)ngx_queue_sort(hpf)插入排序**cpmfunc原型:ngx_int_t (*cpmfunc)(const ngx_queue_t *a,const ngx_queue_t意義q為鍊錶中某個結構體變數ngx_queue_t成員的指標q同上,type是該結構體類型,member是ngx_queue_t在該結構體中的名稱將x所在的結構體變數插入q所在的結構體變數之後註:
方法名稱 參數意義 執行意義
tail ngx_queue_sentinel(h)
返回結構體指針 ngx_queue_remove(x)
移除x元素 (不包括q)和q->tail兩部分,後一部分的指標存放在n上
h和n都是雙向鍊錶容器指標 合併鍊錶,將n接n在h之後
同上 返回第N/2+1個元素的指針
ngx_queue_next(q)
。上一個元素 ngx_queue_data(q,type,member)
回傳q變數所在結構體變數的首位址 q,x) q、x都是某個結構體變數的中ngx_queue_t成員指標
測試sortsort
對於用到的”ngx_queue.h」頭文件,我是從Nginx源碼中拷貝下來修改了一下,挺簡單的,就不上了。

版權聲明:Pain is just in your mind.
以上就介紹了ngx_queue_t雙向鍊錶,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:php一路走來下一篇:php一路走來