iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
0
自我挑戰組

從寫程式到脫離菜雞的歷練(以python為主的資處與檔案權限)系列 第 3

[D3] 基礎資料結構(概論)

資料結構概論

現代人常都會以電腦來 儲存資料,使用軟體,使用者可能不會去了解其重要性。但如果是it人或這次的目標(提升編寫能力) 就成為處理資料前首先要了解的東西

-----------------------------------------------------------------

資料結構是為了要處理複雜資料關係而衍生出來的名詞,而處理資料就有分處理資料跟運算資料2大部分。瞭解資料結構有助於對程式更了解,也更懂權限的設置觀念 甚至能改善程式架構。(程式碼以python範例)

#p1
print('ex1')
print('ex2')
print('ex3')
print('ex4')
print('ex5')
#p2
for i in range(1,6):
    print('ex%d' %i)

結果兩個都輸出

ex1
ex2
ex3
ex4
ex5

從這兩個可以了解 雖然p1跟p2輸出的結果都相同,但很明顯p1較浪費資源。p1要從記憶體拿資源五次,但p2只要跑完一次迴圈(相當於拿一次就好) 就較省資源。

  • 好處:讓寫程式事半功倍

資料2大結構

講完廢話進入重點~

  • 串並列結構

資料的輸入輸出與讀寫就是一種串並列結構 (像後面會學習到的資料流跟檔案流 只要有流的大概都是串並列結構)
特色: 每個資料執行過程沒有任何關聯 且為單一處理指定的資料,而輸入可為 (記憶體 , 暫存器 , I/O處理)

  • 樹狀結構

不只有程式 資料樹(家族表)也是樹狀結構:
https://ithelp.ithome.com.tw/upload/images/20190907/20117399yHGIjdTuOe.png
只要有判斷或是重複性質的 都可稱樹狀結構
特色: 每個資料雖關聯,但變動資料不直接影響其他資料 就像電腦資料夾下的目錄 , 判別程式…

---------------------------------------------

資料結構流程圖

流程圖定義:只要是流程圖 運行方向都是不交叉的

Ex:(判斷密碼是否正確)

a = int(input('輸入密碼:'))
if a == 123:
    print('正確')
else:
    print('錯誤')

https://ithelp.ithome.com.tw/upload/images/20190907/20117399vCPIKsBXaQ.png

Ex:(查詢檔案程式)

import os
#路徑名稱
file = "<當前file>\<file name>\123.exe"
# 檢查檔案是否存在
if os.path.isfile(file):
  print("檔案存在")
else:
  print("檔案不存在")

https://ithelp.ithome.com.tw/upload/images/20190907/20117399QWeiL29Q65.png
由此會發現 寫程式時大都為樹狀結構,因為串並聯大都用在的讀寫與進出(I/O)。像usb資料寫入(流)就是一種串列結構 而控制usb資料的程式則為樹狀結構


上一篇
[D2] 動靜態語言
下一篇
[D4] 資料處理:資料流
系列文
從寫程式到脫離菜雞的歷練(以python為主的資處與檔案權限)32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言