- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
コンピュータ基礎演習 ー双方向リストー 岩井 儀雄 iwai@sys.es.osaka-u.ac.jp 復習:リスト構造(1) 連結リストとは? リストに含まれる各要素をつなぎ合わせたもの 復習:リスト構造(2) 構造体を用いたリストの表現 復習:リスト構造(3) 連結リストの操作 要素の挿入 (insert) 要素の削除 (erase) リストの連結(concatenate) リストの分断 (split) 要素の探索 (find) 空リストの生成 (create) 要素数 (size) 先頭要素を見る (front) 最後尾要素を見る(tail) 復習:リスト構造(4) 連結リストの派生データ構造 連結リストの問題点 各セルは次のセルへのポインタのみを持つ. セル間の移動は1方向のみ 前後に自由に移動できるリスト構造 Doubly-linked list(双方向連結リスト,双方向リスト,2重連結リスト) 双方向リストdoubly-linked list 各セルは2つのポインタを持つ 次のセルへのポインタ 前のセルへのポインタ 前後のセルへのポインタを持っているので前後に移動可能 双方向リストdoubly-linked list(2) 双方向リストdoubly-linked list(3) 双方向リストの利点 利点 双方向リストでは,セルは前後のポインタを持っているため,制約を受けず挿入,削除などの操作が可能 一方,連結リストでは,一般に挿入,削除などの操作に制約がある. 例)挿入の場合 連結リストでは,指定したセルの直後には挿入できるが直前には挿入できない 連結リストでは,直前のセルへのポインタを持つなどの工夫が必要 双方向リストの欠点 連結リストと比べるとポインタを1つ余計に持つ必要がある 取り扱うデータが小さい場合(例えば,整数),2このポインタを持つため記憶容量に対してオーバーヘッドが大きい(データサイズが大きい場合は問題ではない) 双方向リストのセル(C言語) 空リスト(要素)生成の実装(C言語) 要素挿入の実装 指定された要素の次の位置に挿入 連結リストとほぼ同様 指定された要素の前の位置に挿入 前のセルに移動して,次の要素に挿入 要素挿入指定された要素の次の位置に挿入 要素挿入指定された要素の次の位置に挿入 要素挿入指定された要素の次の位置に挿入 要素挿入指定された要素の次の位置に挿入 要素挿入指定された要素の次の位置に挿入 指定された要素の前の位置に挿入 前のセルに移動して,次の要素に挿入 要素削除の実装 指定された要素の次を削除 連結リストとほぼ同様 指定された要素を削除する 指定された要素を削除する 指定された要素を削除する 指定された要素を削除する 指定された要素を削除する 指定された要素を削除する tail の実装 多重リスト構造multi link structure セルに2つ以上のポインタを持たせ,同時に複数のリストに所属できるようにしたデータ構造 例)大学での学生の成績を管理する表 2次元配列でも表現可能 2次元配列を用いた場合 例)成績管理表 学生総数2,000人,授業課目数400,平均受講課目数 10 多重リスト構造 基本アイデア データのある要素をセルで表現し,それらをポインタでつなぐ コンピュータ基礎演習 ー木構造,二分木ー 岩井 儀雄 iwai@sys.es.osaka-u.ac.jp 木構造 階層構造を表すためのデータ構造 一般世界 会社組織,家系図(祖父母,父母,兄弟),本の構成(章,節,段落) 計算機の世界 階層化ディレクトリ(UNIX) コンパイラによる構文解析 木 (tree) 部分木 (subtree) 部分木 (subtree) 木に関する用語 木に関する用語 木に関する用語 木の再帰的定義 単一の節はそれ自体が木である.この節はこの木の根でもある. k個の木T1~Tkがあり,それぞれの根を節n1~nkとする.節nを節n1~nkの親にすると節nを根とする新しい木Tが得られる.このとき,木T1~Tkは,木Tの部分木(subtree)であるという.部分木の根n1~nkは節nの子であるという. 節の順序 節の子には左から右に順序をつける ADT Tree 節の親を返す(parent) 節の最も左の子を返す(leftmost_child) 節の次の弟を返す(right_sibling) 根を返す(root) 節を作成する(create) 2分木(binary tree) 定義 空の木は2分木である 次のいずれかを満たす節のみからなる木は,2分木である. 子を持たない 左の子を1つだけもつ 右の子を1つだけもつ 左の子と右の子を1つずつもつ 2分木 2分木では右の
原创力文档


文档评论(0)