ad-2. 双方向リスト
1
金子邦彦
C 言語によるアルゴリズムとデータ構造)(全6回)
URL: https://www.kkaneko.jp/pro/ad/index.html
双方向リストの構造と操作方法、C言語による実装
学習内容の構成
1. 双方向リストの構造:要素を格納するセルと、
前後のレコードを指す2つのポインタで構成
2. 連結リストとの違い:前方向への要素挿入が可
3. C Tutorによる実習:双方向リストの作成、末尾
要素の削除、末尾への要素挿入
前提:C言語の基礎、連結リストの理解
意義:柔軟なデータ操作が可能なデータ構造の習
2
双方向リストとは
レコードを次の2つで構成
要素を格納するセル
リスト中のレコードを指すポインタを格納す
セル
リスト中のレコードを指すポインタを格納す
セル
3
双方向リストと連結リストの違
リスト内のあるレコードのアドレス A が分かってい
るとする.
連結リスト
A に要素を挿入することは簡単.
A に要素を挿入することはできない.
双方向リスト
A に要素を挿入することは簡単.
A に要素を挿入することも簡単.
4
1-2. 実習
5
実習の指示
資料:12
次のことを理解しマスターする
双方向リスト
6
実習
ウェブブラウザを起動する
C Tutor を使いたいので,次の URL を開く
http://www.pythontutor.com/
Internet Explorer でうまく動かない場合がある
うまく動かないときは Google Chrome を試してください
途中でServer Busy・・・」というメッセージが出る
とがある.
混雑している.少し(数秒から数十秒)待つと自動で表示
が変わる(変わらない場合には,操作をもう一度行ってみ
る)
日本語モードはない.英語で使う
7
C Tutor」をクリック
8
9
C (gcc4.8, C11)」になっている
エディタ
実行のためのボタン
最初から main メソッドの
ひな形が入っている
双方向リストの作成
次のプログラムを使う
10
②「Visualize Execution」をクリック.
Last」をクリック.
結果を確認する.
Edit this code」をクリックして戻る
11
実行結果
12
レコード
レコード
レコード
実習
いまのプログラムで
末尾の要素(値は16)を削除するプログラム
を書き加えなさい
・いまのプログラムで,
末尾に新しい要素(値は 24)を挿入する
プログラムを書き加えなさい
13