2020清華大学912コンピュータ基礎総合思い出(データ構造部分)

2792 ワード

2020清華大学912コンピュータ基礎総合
データ構造
1.正誤判断(12 x 2’)
  • n l o g n=Ω(l o g n)(C S D Nはなぜ数式の左揃えに対応していないのですか?nlogn=\Omega(log^n)(CSDNはなぜ数式の左揃えに対応していないのですか?)nlogn=Ω(lognn)(CSDNはなぜ数式の左揃えに対応していないのですか?
  • quicksort平均の場合、時間の複雑さはO(n l o g n)O(nlogn)O(nlogn)であり、場合によっても同じであることが望ましい.
  • 規模はn n nのジャンプテーブルであり、期待塔はl o g n logn lognである.
  • 敗者ツリーdelmax()は、動作時間の複雑さが、漸進的に勝者ツリーより優れている.
  • 完全二叉山削除動作の平均時間の複雑度はO(1)O(1)O(1)であり、最悪の場合はO(l o g n)O(logn)O(logn)O(logn)である.
  • Crane左式ヒープAとヒープBは、マージヒープの右側のノードも必ずしもAまたはBの右側のチェーンから来るとは限らない.
  • 規模のn n nのAVLツリーの挿入動作は、最悪の場合、O(l o g n)O(logn)O(logn)O(logn)の次の部分再構成を引き起こす.
  • はn n n個の要素を完全な二叉スタックに構成し、少なくともO(n l o g n)O(nlogn)O(nlogn)の時間が必要である.
  • 赤黒いツリーの各ノードの黒の深さと黒の高さの合計は、必ず等しい.
  • は、CBAアルゴリズムに基づいて、前10%をO(n)O(n)O(n)時間内にn n個の無順序から見つけることができる.
  • は、閉じられたハッシュに対して、システムキャッシュをよりよく利用することができる.
  • DAGは、DFSの後にk k kのエッジがbackwardとしてマークされており、図中にkのリングが必ずしも含まれるとは限らない.
  • 2.選択問題(6 x 3’)
  • DFS各ノードは、アクセス順に_____出力は元の図のトポロジカルな順序付けシーケンスである.
  • ベースの順序付けの下に採用された順序付けアルゴリズムが不安定であれば、ベースの順序付けの正確さと安定性はどうですか?
  • モードの文字列はランダムな英字と数字から構成されていますが、蛮力アルゴリズムの最高の状況と平均的な状況はKMPアルゴリズムと比べてどうですか?
  • RPN式の値は2019です.オペレータがいないのは何ですか?(例年と同じですが、具体的な表現は何ですか?よく覚えていません.)
  • いくつかの無差別ノードが真二叉樹を構成する種類は、2019の括弧対からなる合法的な表現と同じくらい多いですか?
  • モードのシリアルHHF...HHFB...(全部で15文字)は、改善されたnext表を使って、next[14]-next[0]はいくらですか?
  • 3.証明の有無(5’)
  • は、二叉樹の最初の順序と後の順序を与えられました.唯一の階層巡回が得られますか?できれば、証明してください.だめなら、反例を挙げてください.
  • 4.アルゴリズムの問題
    struct BinNode{
        BinNode *lc;
        BinNode *rc;
        BinNode *parent;
    
        BinNode *zig(BinNode *t); //        ,              。
        BinNode *zag(BinNode *t); //        ,              。
    }
    
  • 与えられたサイズはnの完全な二叉樹で、ルートノードの左サブツリーの規模を求めて、導出プロセスを書き出します.
  • は、最初の問題を疑似コードで実現し、対応する注釈を追加します.
  • int lSize(BinNode *t){
        //your code
    }
    
  • は、完全な二叉の木を発見し、中から順にk番目のノードを巡回し、疑似コードで実現し、対応する注釈を追加する.
  • BinNode *search(BinNode *t, int k){
        //your code
    }
    
  • は、二叉のツリーノードaxを与え、axの祖先である.zigzagを介して動作するように試み、xaの子供ノードに調整する.anullであれば、xがルートノードである.
  • BinNode *regulate(BinNode *x, BinNode *a){
        //your code
    }
    
  • は、上記で実現されたインターフェースを使用して、与えられた二叉ツリーを完全な二叉ツリーに変換する.
  • BinNode *balance(...){
        //your code 
        //        O(nlogn)
        //              
    }
    
  • は、あなたが実現したbalanceが問題の要求時間の複雑さに達することができることを証明しています.