typedef struct element { struct element * next; int val; } element_t, * element_tp; typedef struct queue { element_tp head; element_tp tail; } queue_t, * queue_tp;さて、queue の基本的な機能は以下の二つの関数を実現すればできあがります。
kamada@shusaku%a.out get_queue(queue) is ... [address: 10015020] [val: 0] get_queue(queue) is ... [address: 10015030] [val: 1] get_queue(queue) is ... [address: 10015040] [val: 2] get_queue(queue) is ... [address: 10015050] [val: 3] get_queue(queue) is ... [address: 10015060] [val: 4] get_queue(queue) is ... [address: 10015070] [val: 5] get_queue(queue) is ... [address: 10015080] [val: 6] get_queue(queue) is ... [address: 10015098] [val: 7] get_queue(queue) is ... [address: 100150a8] [val: 8] get_queue(queue) is ... [address: 100150b8] [val: 9] get_queue(queue) is ... [address: NULL] get_queue(queue) is ... [address: NULL] get_queue(queue) is ... [address: 100150c8] [val: 10] get_queue(queue) is ... [address: 100150d8] [val: 11] get_queue(queue) is ... [address: 100150e8] [val: 12] get_queue(queue) is ... [address: 100150f8] [val: 13] get_queue(queue) is ... [address: 10015108] [val: 14] get_queue(queue) is ... [address: 10015118] [val: 15] get_queue(queue) is ... [address: 10015128] [val: 16] get_queue(queue) is ... [address: 10015138] [val: 17] get_queue(queue) is ... [address: 10015148] [val: 18] get_queue(queue) is ... [address: 10015158] [val: 19] get_queue(queue) is ... [address: NULL] get_queue(queue) is ... [address: NULL]gdb とかつかってデバッグするといいでしょう。 頑張りましょう。
一応、解答例ものせておきますが、 一度も作ったことがない人は必ず解くこと。 でないと、課題で悲しいことになります。
2001.11.12/ Tomio KAMADA: kamada@cs.kobe-u.ac.jp