私の「母国語」は Java で、教育目的で C でプロジェクトを作成する必要があります。queue.h
私は図書館を理解しようとします。Java では、デフォルトadd()
で の最後にアイテムを配置しますが、他のメンバーを受け入れないマクロのみがありList
ます。実際、小さなテストでは、HEAD に挿入されることが示されています (トラバースすると、最後に挿入された要素から最初に挿入された要素に移動します)。では、これを FILO キュー (つまりスタック) と呼ぶべきではないでしょうか。queue.h
LIST_INSERT_HEAD
LIST_FOREACH
質問する
993 次
3 に答える
0
によって提供される多数のキュー オプションがありますqueue.h
。
これはすべてプリプロセッサによって行われ、ファイルのフル パスがsrc/sys/sys/queue.h
すべての BSD システム上にあることにも注意してください。つまり、内部構造のためにカーネル内で頻繁に使用されることを意味し、各バリアントは効率と最小メモリのために高度に最適化されています。フットプリント。
OpenBSD では、キューを選択するための選択肢がいくつかあるようです (各 BSD システムでは、ここでの選択がわずかに異なる場合があります)。
- http://bxr.su/o/queue.h#SLIST_HEAD
- http://bxr.su/o/queue.h#LIST_HEAD
- http://bxr.su/o/queue.h#SIMPLEQ_HEAD
- http://bxr.su/o/queue.h#XSIMPLEQ_HEAD *
- http://bxr.su/o/queue.h#TAILQ_HEAD
- http://bxr.su/o/queue.h#CIRCLEQ_HEAD *
* いずれにせよ、現在のところ、6 つの選択肢のうち 4 つだけが公式にマニュアル ページに記載されているようです。参照: http://bxr.su/o/share/man/man3/queue.3
キュー/リストに参加できるようにしたい場合INSERT_TAIL
でも、ここから選択できるオプションがたくさんあります - SIMPLEQ
、XSIMPLEQ
、TAILQ
およびCIRCLEQ
.
つまり、要約すると、名前によるキュー/リストの実装がLIST
末尾の挿入を許可する必要があるという法律はありません!
于 2015-10-01T09:51:16.477 に答える