データ構造の行の文字列を一緒にする機能です
配列(リスト)
Q:配列は何を適用することが前提条件ですか?[12]?メモリは条件を満たすために必要ですか?
[3]が最初のアドレス(1000)+指数(3)タイプ長さ*(4)= 1012 = 1015 ---(int型4バイト)
Q:どこで、配列の最初のアドレスを取得したのですか?
A:最初のアドレスは、アレイのアレイ名に格納されます。
増加リスト(APPEND)は、(のために)(POP)の変更(更新)を確認するには、削除しました
一覧(ジョセフ、Diushouフアンの問題)
シングルチェーンCRUD
#涼の英雄リーダー クラスヒーロー(): DEF __init__(セルフ、NO =無し、名前=なし、ニックネーム=なし、pNext = なし): self.no = NOの self.name = 名 self.nickname =ニックネーム #3範囲である self.pNext = pNext #メモリアドレスを保持し、ポインタフィールド DEF :追加(頭、ヒーロー) ##ヘッドノードが移動することはできませんので、一時的な変数はトラバースにサードパーティのヘルプヘッド必要 CUR =が頭 しばらく cur.pNextを! = なし: ##次のノード有料CURのメモリアドレス、次のノードに指すことになり、この時点でCUR CUR = cur.pNext ##ユーザーがこのループを終了すると、エンド・ノードにCURポイントがあり cur.pNext = ヒーロー DEF のgetAll(ヘッド): CUR = 頭ん 中 cur.pNext =!なし: CUR = cur.pNext 印刷を(「コードです:%sの、名前は:%sは、ニックネームがある:S%"%(cur.no、cur.name、cur.nickname)) DEF delHero(ヘッド、NO): CUR =は頭 しばらく cur.pNext =!なし: IF CUR。 == pNext.no NO: BREAK CUR = cur.pNext cur.pNext =cur.pNext.pNext ヘッド =ヒーロー() #のヘッドノード のH1 =ヒーロー(1、' 松江'、' タイムリー' ) の追加(ヘッドのH1) H2 =ヒーロー(2 ' 俊義'、' XXX ' ) 追加(頭、H2) H3 =ヒーロー(。3、' 西門'、' dsadsad ' ) を追加(ヘッド、H3) のgetAll(ヘッド) delHero(ヘッド、 2 ) 印刷(' *********** ' ) のgetAll(ヘッド)
ヨセフはリストで問題を解決する(知っています)
開始者からのパケット数の合意された数k(1 <= K <= N)、列の数mにその人の周りに座って設け番号1,2、... N、個人、その下そして、ラインアップのうち誰になるまで、mまでの数、その人の数と列のgettin 1から、そのためには、それによってチームのシーケンス番号を生成します
#循环链表 クラス子(オブジェクト): 最初 = なし デフ __init__(自己、なし=なし、pNext = なし): self.no = いいえ self.pNext = pNext DEFはaddChild(自己、N = 4 ): CUR = なし 用 I における範囲(N): 子 =子供(I + 1 ) であれば、I == 0: self.first = 子 self.first.pNext = 子 CUR = self.first 他: cur.pNext = 子供 child.pNext = self.first CUR = cur.pNext DEF showChild(セルフ): CUR = self.first しばらく cur.pNext =!self.first: 印刷(" 子数ある:Dの%"%のcur.no) CUR = cur.pNext 印刷(" 子コードは:Dの%"%cur.no) DEF countChild(セルフ、M、K): 尾は = self.first 中!tail.pNext = :self.first 尾 = tail.pNext #は、上述した第1に、すでに出てきた #の少数の人々からのスタートカウント 用 I における範囲(1-K ): テール = tail.pNext self.first = self.first.pNext #最初の二倍の数、及び、移動テールようにすることです #の3の数を、それが二回最初の移動と尾を作ることです しばらく!=テールself.first: #テール==最初の記述はたった一人だけだった ため、私中範囲(1-M。 ): テール = tail.pNext self.first = self.first.pNext self.first = self.first.pNext tail.pNext = self.first 印刷(「人の左の円内の最後の:D%"%のtail.no) C = 子供() c.addChild( 4 ) c.showChild() c.countChild( 3,2)
線形構造の応用
定義されたスタック:「最後のアウト」のストレージ構造を実装する方法
分類スタック
スタティックスタック:コアは、連続的なメモリ・アレイに類似の配列、である、あなただけの、そのトップ要素を操作することができます
ダイナミックスタック:コアリスト
**コール機能(動作原理は、基礎となります):
ポップ
判決:スタックが空の場合は、機能の代表が実行され、メモリを解放
キュー
定義:「FIFO」データ構造を達成する方法
生産者 - 消費者モデル(オペレーティングシステムの概念は、様々な言語で実現することができる)のようなアプリケーション
単にその:
- そして唯一のツリーのルート
- いくつかの互いに素サブツリーがありますが、木自体がサブツリーがあります
人気の定義:
1.ツリーは、ノードとエッジで構成されている
各ノードは一つだけの親を持つことができますが、複数の子ノードを持つことができます2。しかし、ノードへの1つの例外があり、ノードに親がない、これはルートノードと呼ばれています
- ノード
- 親
- 子ノード
- 後世
- カズンズ
- ブラザーズ
- 深さ
- ルートノードからノードへの層が底深さと呼ばれ、ルートノードは、第一層です
- リーフノード
- ノードが子を持ちません
- 度
- 子ノードの数
- ノードB +ツリーの任意のサブノードの数は限定されるものではありません
二進木
- 定義:最大2つの子ノードのノード番号の子供の任意の位置を変更することはできません
- 完全なバイナリツリー
- 定義:層数を増やすことではないという前提の下で、あなたは、バイナリツリーのノードを追加することはできません
- 完全なバイナリツリー
- 定義:完全なバイナリツリーばかりのノードの一番右の連続した番号の下を削除
- 一般的なバイナリツリー
- 完全なバイナリツリー
- 数字のnは互いに素セット
- ツリーは、データ編成の重要な形式のデータベースです
- オペレーティングシステム自体との間の関係は、親木の子であります
- 継承表面タイプオブジェクト言語クラス