キュー数をカウントするテストプログラム
Posted: 2011年4月24日(日) 22:01
初めまして。社会人2年目のプログラマーです。
C言語で事前にキュー数をカウントするプログラムが与えられていて、
そのプログラムが正しく動作するか自分でキューを作成して、
正しい結果が得られる事を確認するテストプログラムを
作成するような研修課題があります。
ここで、
キュー数をカウントする関数:unsigned int q_get_cnt( ST_QLIST *)
先頭キューを得る関数 :ST_QNODE* q_get_first( ST_QLIST *)
次キューを得る関数 :ST_QNODE* q_get_next( ST_QNODE *)
です。
自分でmain関数を作って、その中で自分でキューを3つ作って、
q_get_cnt( ST_QLIST *)の戻り値が3と出力されるようなプログラムを
作りたいわけですが、そもそも自分でキューを3つ作る方法が
わからないのです。
上記3つのキュー関数の仕組みは理解しています。(たぶん・・・)
誰か、このmain関数の中身を教えて頂きたく。。
C言語で事前にキュー数をカウントするプログラムが与えられていて、
そのプログラムが正しく動作するか自分でキューを作成して、
正しい結果が得られる事を確認するテストプログラムを
作成するような研修課題があります。
ここで、
キュー数をカウントする関数:unsigned int q_get_cnt( ST_QLIST *)
先頭キューを得る関数 :ST_QNODE* q_get_first( ST_QLIST *)
次キューを得る関数 :ST_QNODE* q_get_next( ST_QNODE *)
です。
自分でmain関数を作って、その中で自分でキューを3つ作って、
q_get_cnt( ST_QLIST *)の戻り値が3と出力されるようなプログラムを
作りたいわけですが、そもそも自分でキューを3つ作る方法が
わからないのです。
上記3つのキュー関数の仕組みは理解しています。(たぶん・・・)
誰か、このmain関数の中身を教えて頂きたく。。
#include <stdio.h>
/* キューノード構造体 */
struct qnode
struct qnode *next; /* 次ノードへのアドレス */
struct qnode *prev; /* 前ノードへのアドレス */
};
typedef struct qnode ST_QNODE;
/* キューリスト構造体 */
struct qlist
struct qnode *head; /* 先頭キューノード */
struct qnode *tail; /* 末尾キューノード */
};
typedef struct qlist ST_QLIST;
/* プロトタイプ宣言 */
ST_QNODE* q_get_first( ST_QLIST *)
ST_QNODE* q_get_next( ST_QNODE *)
unsigned int q_get_cnt( ST_QLIST *)
ST_QNODE* q_get_first( ST_QLIST *list)
{
return(list->head);
}
ST_QNODE* q_get_next( ST_QNODE *node)
{
return(node->next);
}
unsigned int q_get_cnt( ST_QLIST *list)
{
ST_QNODE *node;
unsigned int cnt = 0;
node = q_get_first(list);
while(node != NULL){
cnt ++;
node = q_get_next(node);
}
return cnt;
}
int main(void)
{
unsigned int ret;
/* ここで自分でキューを3つ作成する方法がわからない */
ret = q_get_cnt(list); /* ret=3 となればよい*/
printf("キュー数は%dです。",ret);
return 0;
}