自分には、難しい内容なので、色々教えていただけると嬉しいです。
リスト構造で、データの入れ替え・ポインタの付け替えを行っているのですが、どこのサイトを見てもどれが、参考になるのか分かりませんでした。
例えば、宣言でgFront→a1→a2→a3→a4→a5→NULLのすでに連結されたリストがあります。
先頭には、ダミー(gFront)のセルがあり、そこからたどって入れ替えていくというものです。
a1からa5の中には、数字が入っているものとします。
a2とa5の入れ替えを行うと仮定して話します。
そして、a2をpreとして、a5をnewとして、preの一つ前をprepreとし、newの1つ前をprenewとして、ひとつ前のnextを調べてポインタの付け替えを行います。
4か所のポインタの付け替え後の結果を、gFront→a1→a5→a3→a4→a2→NULLとしたいです。
swapを使ったリストの中身入れ替えではなく、ポインタの付け替えでリスト自体の入れ替えを行いたいと考えています。
この付け替えの部分がいまいちプログラムの書き方と言いますか、よく理解できていないので、教えていただけないでしょうか?
文章だけでは、分かりにくいところが多々あるかとは思いますが、宜しくお願いいたします。
A 回答 (11件中11~11件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
線形連結リストの基本的な操作なので、リストの仕組みを理解していれば、簡単ですよ。
newとかprenewとか難しく考えすぎているみたい。
前のノードがpre、後のノードがnextとすると
a1->next=a5;
a5->pre=a1;
a5->next=a3;
a2->pre=a4;
a2->next=NULL;
一般化する場合は、現状リンクしているノードを覚えておくことを忘れずに。
この回答への補足
p1というポインタを使ってたどっていくので、もっと複雑になりませんか?
入れ替えを複数回行いたいので、
a1->next=a5;
のように固定して書けません・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Excel(エクセル) 範囲指定をした中で、住所の列をユーザー設定の並べ替えをしたい 3 2022/05/15 13:51
- Excel(エクセル) Excelで漢字人名が勝手に並び変わる(続) 4 2023/03/21 21:28
- 会計ソフト・業務用ソフト Excelマクロに詳しい方教えてください 1 2023/06/29 16:18
- 引越し・部屋探し 引っ越しのコツを教えて下さい 3 2023/01/09 00:01
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- その他(Microsoft Office) 1の行を固定した上でVBAを用いて日付順に自動並べ替え 2 2022/06/06 15:09
- Excel(エクセル) 【エクセル】並び替えからの並び替え方法 7 2022/07/22 09:46
- Visual Basic(VBA) VBAで自動集計(特定セルコピー月ごとに値貼り付け)したい。 6 2023/06/25 11:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セグメントエラー
-
init関数の意味
-
C言語のポインタに直接アドレス...
-
LPSTR型の初期化について
-
fopne で失敗する原因
-
Run-Time Check Failure #3とい...
-
NULLとブランクの違い
-
str[i] は *(str + i) と同義で...
-
エラーの意味
-
ハンドル、アドレス、ポインタ...
-
型変換について
-
参照型で受け取った引数をポイ...
-
[C言語] NULLは必ず0(番地)です...
-
C言語の関数と配列に関する質問
-
IStream / VBA
-
どうしてエラーになるかわかり...
-
DelphiでCreateProcessがうまく...
-
配列アドレスの減算
-
C言語でのconstを返す関数
-
Voidポインタで受け取った変数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セグメントエラー
-
C言語のポインタに直接アドレス...
-
init関数の意味
-
戻り値で構造体を返すことは可...
-
fopne で失敗する原因
-
C言語の関数と配列に関する質問
-
Run-Time Check Failure #3とい...
-
LPSTR型の初期化について
-
ExcelVBAでのkernel32(64bit)
-
main(int argc,char **argv[])...
-
アプリを32bitから64bit移行
-
連結リスト 要素の入れ替え
-
ハンドルはポインタか
-
Cで作成したDLL関数をVBから呼...
-
C言語でのconstを返す関数
-
NULLとブランクの違い
-
エラーの意味
-
DLL<->VB間での受け渡し(文字...
-
ハンドル、アドレス、ポインタ...
-
【C言語】戻り値が構造体の関数
おすすめ情報