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) | 同上 | |
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_t雙向鍊錶,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。 |
---|