c言語でLinux/gccです。
(1,11), (2,22), (3,33), (4,44), (5, 55)
上記のような線形リストがあるとし、(v1, v2)とする。
追加の仕方は、たとえば
(2,22)と(3,33)の間に、(7,77)を挿入したい場合、v1が2である要素を見つけその次に挿入する。
v2は気にしない。
仕様
void insert_st(struct st *s, int pred_v1, int v1, int v2) //挿入
ポインタsから辿れる線形リストの要素(pred_v1, *)の次の位置に、(v1, v2)を挿入する。挿入対象要素の1つ手前の要素を指定するために、insert_st()では、線形リストの先頭に要素を挿入することはできないが気にしない。(pred_v1, *)が複数存在する場合、線形リストを辿って最初に見つけたものとする。(pred_v1, *)に該当する要素が存在しない場合、線形リストに変化を加えないこと。
void delete_st(struct st *s, int pred_v1) //削除
ポインタsから辿れる線形リストの要素(pred_v1, *)の次の要素を削除する。削除対象要素の1つ手前を指定するため、delete_st()では、線形リストの先頭要素を削除することはできないが気にしない。(pred_v1, *)が複数存在する場合、線形リストを辿って最初に見つけたものとする。(pred_v1, *)が線形リストの末尾要素の場合及び該当する要素が存在しない場合、線形リストに変化を加えない。
なにか疑問点があればお答えいたします。
よろしくおねがいします。
構造体の挿入と削除
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 構造体の挿入と削除
まず、フォーラムルールにあるテンプレートをお使いいただいて記入頂けますか?
http://dixq.net/board/board.html
で、ここは宿題のお手伝いをする掲示板ではありますが、そのものの回答を書く掲示版ではありません。
なので、まずmikeさんが出来るだけやった上でわからない部分をお手伝いするというスタンスになりますのでよろしくお願いします。
http://dixq.net/board/board.html
で、ここは宿題のお手伝いをする掲示板ではありますが、そのものの回答を書く掲示版ではありません。
なので、まずmikeさんが出来るだけやった上でわからない部分をお手伝いするというスタンスになりますのでよろしくお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 構造体の挿入と削除
1
struct st{
int value1;
int value2;
struct st *next;
};
2 ないです。
3 グローバル変数は使わない方向でお願いします。
struct st{
int value1;
int value2;
struct st *next;
};
2 ないです。
3 グローバル変数は使わない方向でお願いします。
non さんが書きました:1 まず,構造体の宣言を記述してください。
2 リスト構造に番兵があるか,ないか示してください。
3 グローバル変数は使って良いか示してください。
Re: 構造体の挿入と削除
mikeさん
nonさんにしか返答していませんが、softyaさんの回答も確認されましたか?
フォーラムルールとして課題の丸投げは禁止されており、作成されたコードがあればそちらに対して
解決に至るアドバイスをさせていただくといった形になります。
もし、何か問題(不明点など)があってコードが作成できないのであれば、何が分からなくて書くことが
できないのかを明記した方が皆さんからアドバイスいただけると思いますよ。
以下、参考までにフォーラムルールのテンプレートです
nonさんにしか返答していませんが、softyaさんの回答も確認されましたか?
フォーラムルールとして課題の丸投げは禁止されており、作成されたコードがあればそちらに対して
解決に至るアドバイスをさせていただくといった形になります。
もし、何か問題(不明点など)があってコードが作成できないのであれば、何が分からなくて書くことが
できないのかを明記した方が皆さんからアドバイスいただけると思いますよ。
以下、参考までにフォーラムルールのテンプレートです
Re: 構造体の挿入と削除
線形リストに対する挿入や削除が正しく行なえているかどうかを確認するには、
まず、「線形リストを新規作成する」という処理が必要ですね。このあたりは大丈夫なんでしょうか。
まず、「線形リストを新規作成する」という処理が必要ですね。このあたりは大丈夫なんでしょうか。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。