ページ 11

単方向線形リストについて教えてください。

Posted: 2011年10月30日(日) 23:20
by 若槻
今、単方向線形リストについてが勉強しています。
空リストを作成する関数を作りたいのですが
プログラミングの書き方がわかりません。
どの関数についても関数の第一引数は struct slist*型

struct cell {
struct cell *next;
int data;
};

struct slist {
struct *head;
};

として
ダミーセルありとダミーセルなしの2つを
作りたいのですがこれもやり方がわかりません ; ;
お願いします。

Re: 単方向線形リストについて教えてください。

Posted: 2011年10月31日(月) 11:33
by non
リスト構造などのキーでググってみて、そこに書かれていることで
何がわからないのかを、参考にしたHPのURLとともに記載してください。

勉強が目的なら、自分で調べることはもっとも大事なことです。

Re: 単方向線形リストについて教えてください。

Posted: 2011年10月31日(月) 20:18
by 若槻
上の条件で「空リストを生成する」関数を作ったのですが

#include<stdio.h>
#include<stdlib.h>
#include<slist.h>

struct cell {
struct cell *next;
int data;
};
struct slist {
struct cell *head;
};

//リスト作成
void creat (int data, cell *p){
p = (cell *)mlloc(sizeof(cell));
p->next = NULL;
p->data = data;

return p;
}


お願いします。

Re: 単方向線形リストについて教えてください。

Posted: 2011年10月31日(月) 21:56
by box
若槻 さんが書きました: 上の条件で「空リストを生成する」関数を作ったのですが
上の条件とは、
若槻 さんが書きました: 関数の第一引数は struct slist*型
これのことですか?もしそうだとすると、
若槻 さんが書きました: void creat (int data, cell *p){
明らかに、条件に反していますね。
また、何か自作関数を書いたら、それを動かすためのmain関数もついでに書いてみてはどうでしょうか。

Re: 単方向線形リストについて教えてください。

Posted: 2011年11月01日(火) 00:37
by 若月
返信ありがとうございます。
関数の第一引数は struct slist*型
の意味がわかりません ; ;
勉強不足ですみません

Re: 単方向線形リストについて教えてください。

Posted: 2011年11月01日(火) 08:48
by non
若月さんが書いた関数

コード:

void creat (int data, cell *p){
	p = (cell *)mlloc(sizeof(cell));
	p->next = NULL;
	p->data = data;
	return p;
}
これが、エラーになることを、実際に試してみるのが勉強になります。

第一引数の件ですが、この空リストを生成するのにこのstruct slist*型
を使わなくてはいけないのなら、もっと仕様をはっきりすべきです。
例えば、空リストはリストの先頭に追加するとか、最後尾に追加するとか。
ただ単に、空ノードを作るだけなら、struct slist*型を渡す必要は
ありません。課題を出した人に確認してください。