ページ 11

連結リスト 双方向リスト 

Posted: 2011年7月20日(水) 14:12
by t
1,連結リストの最後に要素を追加するプログラムを作成しなさい.ただし,連結リストの最後に要素を指すポインタを保持している場合と保持していない場合について,プログラムを作成すること.

2,双方向リストについて,領域の確保,確保した領域をリストの先頭に追加,要素の削除を行うプログラムを作成しなさい.

3,連結リストにより,スタックを表現できるプログラムを作成しなさい.


このような問題がでたのですが,全くわかりません.
教えていただけないでしょうか?
c言語でプログラムお願いします.

Re: 連結リスト 双方向リスト 

Posted: 2011年7月20日(水) 14:46
by non
1と2については、検索すれば、いくらでもプログラムがあるでしょう。
何を教えて欲しいのかわかりませんので、少し調べてわからないことを整理してください。

Re: 連結リスト 双方向リスト 

Posted: 2011年7月20日(水) 14:48
by kid
ほんとに全くわからないのですか?
ネットで調べれば多少はのってますよ。
まず構造体の型枠から順に考えましょう。

Re: 連結リスト 双方向リスト 

Posted: 2011年7月20日(水) 15:06
by t
ネットでも調べましたがよくわかりません.
プログラムを教えていただけたら,幸いです.

Re: 連結リスト 双方向リスト 

Posted: 2011年7月20日(水) 15:11
by kid
普通にのってますよ。本当に探しましたか?
http://www.geocities.jp/ky_webid/algorithm/010.html

Re: 連結リスト 双方向リスト 

Posted: 2011年7月20日(水) 15:16
by hidden
わかりませんだけでは回答者が何をすればいいのかわからないのですよ。
なにもわからないのであればリストの概念あたりから説明しなければいけないのですが
それをもとめていますか?

Re: 連結リスト 双方向リスト 

Posted: 2011年7月20日(水) 17:34
by maloc
ネット、教材にも沢山やり方、情報はあります。
リスト構造は紙に図解しながらの方が整理しやすいですよ。
ポインタも重要なところなので今ここで全て投げ出してしまうと引きずってしまうことになります。

以下のソースは追加して表示のみ。
リストの基本の部分は大丈夫でしょうか?

コード:

typedef struct _LIST{
	int data;
	struct _LIST*  p_next;
}LIST;
すvoid main(void)
{
	LIST*  p_add;

	// ノードを一つ生成
	p_add = (LIST*)malloc(sizeof(LIST));

	// ポインタを用いて各メンバを初期化
	p_add->data = 0;
	p_add->p_next = NULL;

	// 表示して確認してみる
	printf("data   = %d\n",p_add->data);
	printf("p_next = %p\n",p_add->p_next);

	// メモリ開放
	free(p_add);
}

Re: 連結リスト 双方向リスト 

Posted: 2011年7月20日(水) 22:24
by box
学校の課題か何かなら、できそうな友人に教えを請い、
お礼に食事でもごちそうしてあげるとよいでしょう。

全くわからないとおっしゃっている質問者さんに、
一から伝えることはできそうにありません。少なくとも私は。