Topics/Syllybus

  • 基礎概念:抽象資料型別(ADT)、時間與空間複雜度
  • 線性結構:陣列、串列、堆疊、佇列
  • 非線性結構:樹、圖、雜湊表
  • 演算法設計:排序、搜尋、遞迴
  • 實務應用與案例分析

Table of Contents


Fundamentals

連線到google主控

  • 本門課以 perl 程式來實作資料結構, 此 perl 位於教師個人雲端伺服器上. 然校方基於安全因素禁止進入教師主機,所以我們必須借由goolge console 來到達教師主機

連線到教師主機

  • ssh 安全連線通過在網路中建立安全隧道來實現客戶端與伺服器之間的連接, 它通常是經由埠號 22 來完成, 若主機 ssh daemon 不是位於 22 則可以借由 -p 參數指定埠號,緊接應輸入帳號AT主機以連線登入, 按我看範例

ssh 避開密碼

跨主機拷貝

  • scp 用來複製文件由甲到乙地, 它內定使用埠號 22,若要指定埠號則要使用大寫的 P 例如: ssh -P 8080 ./foo.txt 011145001@server.com:~

vi: unix 內定文字編寫器

  • 使用 unix 主機絕對不能避開vi 因為它是 unix 所內定的編寫器,熟悉這個軟體是學習本課程的必需, 予其避開不如好好花些時間研究它的運作原則

perl

perl是什麼

  • Perl 是一種功能強大、特性豐富的程式語言,擁有超過 37 年的發展歷史。

perl最常用的函數

  • print [FH] LIST 其中 FH 可以省略則送標準輸出. 範例顯示使用perl單行偵錯及四則運算運算元

變數 純量 陣列

  • Perl 變數型別由符號(sigil)決定,而非資料內容決定。常見三種變數型別: $ @ % 分別為 純量 陣列 雜湊 (scalar array hash)
  • scalar: 單數變數: Perl 最基本的資料型別,可儲存:整數 浮點數 字串 參照(reference, ex my $x=10; my $s=’xxx’
  • array: 複數: my @nums=(10, 20, 30)

資料結構

  • 陣列 : 連續記憶體空間, 可用索引直接存取
  • 串列 : 不連續記憶體, 每個節點包含 data 及 pointer

堆疊 佇列

  • 堆疊 : FILO
  • 佇列 : FIFO