20182334 2019-2020-1「データ構造とオブジェクト指向プログラミング、」学習要約の7週目

20182334 2019-2020-1「データ構造とオブジェクト指向プログラミング、」学習要約の7週目

コンテンツの概要を学びます

今週発現アレイとリンクリストと配列表現式expressionスタックとキューリストを学習し、いずれかの配列またはリストは、ADTと呼ばれる一つのインタフェースから不可分です:

public interface StackATD<T>
{
    public void push(T element);
    
    public T pop();
    
    public T peek();
    
    public boolean isEmpty();
    
    public int size();
    
    public String toString();
}
public interface List<T> {

    public void add( T element);
    
    public T delete();
    
    public T first();
    
    public boolean isEmpty();
    
    public int size();
    
    public String toString();
}

コードのこの2枚は、中心的な役割を再生するには、すべての方法はまた、テストコードとリンクし、スタックに着手します。

同じことは、キューに、あなたが同じインターフェイスを必要とする事実です。


人のうち最初で最後に、アウト後に高度なエレベーターを行うことと同等のものを、スタック、キューは、弊社の一般的なラインに相当し、人々の最初の行が戻って人々の後に行きます。


また、時間の複雑さを学んだそれはそう私の理解では、コードの時間複雑性は循環のいくつかの層を持って観察することで、サイクルnのいくつかの層、最終的な結果があります、。

学習プロセスでは、問題を発見し、この時間が見つける方法が分からないだろうという表現配列を持つキューに、ここで私はまた、見張りポイントを学び、この知識と接触し、その役割を理解します。

教科書の学習と問題解決のプロセス

  • 質問1:複雑さの先生が私を紹介した時間が通過取得できませんでした。
  • 質問:1溶液ブログで見つかった独自の検索情報マップ「は、時間の複雑さ」を知ってもらうためには、彼はそのような4つの一般的な時間の複雑さなど、このブログでは非常に詳細な言った:O(1)、O( LOGN) 、O(n)と、O( N ^ 2)、 時間を節約する方が長いと、?

  • 質問2:知っているか、最後にやってはジェネリックであるに使用されていないことを得ます。
  • 問題2ソリューション:ブログを見つける詳細なJavaのジェネリックは-間違いなく最も詳細を説明するための汎用的な方法ではなく、1、このブログでは、私はそれを読んだ後、多くの占いで、一般的にいくつかの明確なを持っている:順序でそのときに、ライン入力データ、そう今回のジェネリックがその役割を反映していることを、粉々にノックするとき、あなたは、事前の種類を定義することができ、時間のエラーをコンパイルし実行し、データの2種類の前と後の異なる入力することが可能ですデータとメソッドの多くはまた、一般的な定義で使用されている、私の意見では理解して、手続きコードの二つの異なるタイプが、エラーが表示されたときに、それがタイムリーかつ正確な修正、利便性をもたらすことができますが発生これは、全体がintいる時は文字列、INTのとき、全体として、非常に柔軟です。

  • 質問3:後置式との表現は、(3 * 4 - + 5(2))理由について質問があります* 4/2接尾辞には、34 * 25 + --4 * 2です/ *の代わりに34 + 25 --42 / *。
  • 質問3ソリューション:教師を頼むが、彼はしばらく考えている、彼らはコンピュータを理解するであろうと、人々は、コンピュータが順序1つの入力と出力ずつではある好きではない、と人々は一見して計算するための最も簡単な方法だと思いますその違いはなります。

  • 質問4:スタック内の要素を挿入するには、チェーンとの調査は、すべてのデータが常にポインタの損失後に表示されますどのように非常に明確ではありません。

  • 質問4ソリューション:この問題では、クラスの先生も、その後、保存されている新しい要素へのヘッドポイントは、この時間は、すべての要素を入れてみましょう、次の新しい要素がリストの先頭の目的を指してみましょうの話、私は表示されませんでしたデータの損失を言いました。

プロセスで解決コードのデバッグおよび問題

  • 問題1:以下の図では、一般的な定義のアレイの問題のインスタンスインチ

  • 問題1ソリューション:ジェネリック医薬品を慎重に検討した後は、それをインスタンス化することができるように、全体のインスタンス化プラスT []配列の前に、それは素晴らしいですし、私が学んだことを見出しました。

  • 質問2:私は論文を書くために使用して忘れIDEA。
  • 問題2解決策:次のコードを見つけ、ネットサーフィンして前にプレイしたコードを見つけます:
      try {
//将集合数据写入磁盘
            FileWriter fw = new FileWriter("D:\\IDEAAAA\\untitled5\\Week8\\List_practice\\title.txt");
            for (String s : list) {
                fw.write(s);
                fw.write("\r\n");
            }
            fw.close();

//读取磁盘上文件数据
            BufferedReader br = new BufferedReader(new FileReader("D:\\IDEAAAA\\untitled5\\Week8\\List_practice\\title.txt"));
            String line;

//将读取到的数据写入到list集合中
            List<String> list1 = new ArrayList<String>();
            while ((line = br.readLine()) != null) {
                list1.add(line);
            }
            //StringBuilder sb = new StringBuilder();
            String pp = "";
            /*while ((pp = br.readLine()) != null) {//逐行读取文件内容,不读取换行符和末尾的空格

                sb.append(pp +"\n");
            }*/
//循环输出list集合

            String s = list1.toString();
            pp = s.substring(1,s.length()-1);
            //System.out.println(pp);
            br.close();

上記のコードを読んで、そこに書き込み、主てFileWriterされ、これらのメソッドBufferedReaderのを意味し、ストリングが忘れられているので、彼らはJDKのAPIは、さまざまな方法を見つける再オープン。

  • 質問3:ファイルのプロセスからの読み込みでは、char型Intをに入力する方法がわかりません。
  • 質問3解決策:データがintを追加する前に、強力な変換を試してみましたが、私はインターネットをサーフィンするとき0は、その後49、またはではない、とに変わりますし、追加することが分かっている場合-'0 1「になります、かもしれません直接操作は直接のchar型char型になります。

  • 質問4:リストが行われるため、ソート、大きな問題を行うと、多くの場所があるかわかりません。
  • 質問4ソリューション:最初の場所のマップ:

上記の画像は、バブルソートで、C言語の異なる2つのサイクルがあり、同一の全体的なフレームワークに似て、これは、私が感じる、リンクリストの配列よりもはるかに難しいの後、すべてのC言語の配列であるリストは、ありますそこには学校がリストにはなかったので、今は少し難しい感じているが、すべてが完了した後、戻って、彼らの努力は無駄ではなかったことがわかります。リンクリストの実装具体的な方法は、次のとおりです。チェーンを形成するために一緒にすべての要素を接続するためのヘッドを使用し、次のデータと、3番目の変数を見つけなければならない為替に注意されたリンクリストの要素データを支払う、と同じタイプを使用する必要があり、あなたは混在させることはできませんそれ以外の場合は特定のエラー、損失をたくさん食べます。

コードホスティング

先週試験間違った質問の概要

先週、何の試験ません

コメントは、学生のブログやコードを持っていました

  • ペア今週の学習
    • 20182321
    • ペアの写真

    • ペア学習コンテンツ
      • 実験的な操作を完了するために一緒にAndroidの
      • 一緒に本の中で問題を解決します。
  • 先週のブログピアアセスメントケース

その他(知覚、思考、など)

学習とデータ構造Javaの強さは、彼らが一緒に入れての私は力を過小評価しているようだ、私の想像が始まっ超えました。先生は、私が行が20,000ヒットする可能性があると思いますが、再生するコードの6000行の先頭には自信がありませんと述べました。次の姉妹校の先輩の内容の96時間は、すべてのも、すべてのダイジェスト、これは常に、大きな課題となっているので、彼自身の自己達成時の、Javaのに費やしたすべての時間に自分自身を許可し、フィーリング終了学ぶために非常に損失が、私は学ばなければなりませんでした。常に問題となっている学校が配置されたコースを感じ、それが本当に受け入れることができない、完全にJavaを容認できない予定です。

学習の進捗バー

コードの行の数(/蓄積を追加) ブログ量(/蓄積を追加) 学習時間(/蓄積を追加) 重要な成長
目標 5000行 30 400時間
最初の週 212分の212 2/2 17/17
第二週 344分の132 2/4 17/34
第3週 689/1033 1/5 67分の23
4週 664/1697 2/7 87分の20
5週目 586/2283 2/9 107分の20
6週 500/2783 1/10 133分の26
7週 2143/4928 2/12 173分の40
  • プランの学習時間:29時間

  • 実際の学習時間:40時間

  • 改良:最後に、細流を損ないません!

参考資料

おすすめ

転載: www.cnblogs.com/cistineup/p/11774421.html