首頁 > 後端開發 > php教程 > ngx_queue_t雙向鍊錶

ngx_queue_t雙向鍊錶

WBOY
發布: 2016-08-08 09:20:19
原創
1212 人瀏覽過

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教學有興趣的朋友有幫助。
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板