線形リストの勉強をしているんですが全く分かりません。
ですが丸投げはダメなのでどのようにかいていったらいいか手順を教えてくれませんか?
次の関数を動かすためにおのおの定義していく問題
①
void delete( Node *p )
p で指定された要素の次の要素を削除する手続き.
②
Node* first( Node *head )
head で指定されるリストの最初の要素を指すポインタを返す.リストが空ならば NULL を返す.
③
Node* last( Node *head )
head で指定されるリストの最後の要素を指すポインタを返す.リストが空ならば NULL を返す.
④
Node* next( Node *p, Node *head )
p で指定される次の要素を指すポインタを返す.p がリストの最後尾であれば NULL を返すこと
⑤
Node* prev( Node *p, Node *head )
head で指されるリスト中の内,p で指定される前の要素を指すポインタを返す. p がリストの先頭であれば NULL を返す.
⑥
Node* locate( int i, Node *head )
head で指定されるリストの先頭から i 番目の要素のポインタを返す.存在しない場合は NULL を返す.
アルゴリズム 線形リスト
Re: アルゴリズム 線形リスト
1.開発環境をダウンロードします。http://orwelldevcpp.blogspot.jp/
2.開発環境をインストールします。
3.開発環境を起動します。
4.ファイルを新規作成します。
5.コードを打ち込みます。
6.コードを保存します。
7.コードをコンパイルします。
8.プログラムを実行してテストします。
9.必要に応じてデバッグします。
2.開発環境をインストールします。
3.開発環境を起動します。
4.ファイルを新規作成します。
5.コードを打ち込みます。
6.コードを保存します。
7.コードをコンパイルします。
8.プログラムを実行してテストします。
9.必要に応じてデバッグします。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: アルゴリズム 線形リスト
線形リストですよね?
1)C言語の関数・ポインタは理解出来ていて、自分でコードが書けるか?
2)線形リストのアルゴリズムは理解できているか?
3)ネット上で検索できる線形リストのソースコードは理解できるか?
この3つについてご自身では、何処で躓いていると思いますでしょうか。
1)C言語の関数・ポインタは理解出来ていて、自分でコードが書けるか?
2)線形リストのアルゴリズムは理解できているか?
3)ネット上で検索できる線形リストのソースコードは理解できるか?
この3つについてご自身では、何処で躓いていると思いますでしょうか。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
usao
Re: アルゴリズム 線形リスト
(1)~(6)までの関数の型(引数の種類とか個数とか)は
ご自身で決められたのでしょうか,それとも課題とか問題集とかから与えられているものなのでしょうか.
#"リストに要素を追加する" ための関数も欲しいような…?
>どのようにかいていったらいいか
各々の関数の動作確認をするためには,当然,それらの関数に引数として渡す何らかのデータ(リスト)を用意する必要があると思います.
まずは,(1)~(6)の関数云々以前に,リストデータを実際に用意してみるところから始められてはいかがでしょうか.
(必然的に,この段階でNode型の定義とかが定まりますよね.)
↓
次に,あるリストの内容(リストが持つ要素群)を任意の時点で確認できないとやはり動作確認できないでしょうから,
リストの内容をprintf()か何かで出力する関数を用意し,前記用意したリストの内容を出力できる ところまでを
コーディングしてみるべきと思います.
↓
ここまでができる段階にあれば,(1)~(6)の関数の実装は朝飯前かと思います.
ご自身で決められたのでしょうか,それとも課題とか問題集とかから与えられているものなのでしょうか.
#"リストに要素を追加する" ための関数も欲しいような…?
>どのようにかいていったらいいか
各々の関数の動作確認をするためには,当然,それらの関数に引数として渡す何らかのデータ(リスト)を用意する必要があると思います.
まずは,(1)~(6)の関数云々以前に,リストデータを実際に用意してみるところから始められてはいかがでしょうか.
(必然的に,この段階でNode型の定義とかが定まりますよね.)
↓
次に,あるリストの内容(リストが持つ要素群)を任意の時点で確認できないとやはり動作確認できないでしょうから,
リストの内容をprintf()か何かで出力する関数を用意し,前記用意したリストの内容を出力できる ところまでを
コーディングしてみるべきと思います.
↓
ここまでができる段階にあれば,(1)~(6)の関数の実装は朝飯前かと思います.