python資料結構例題

2021-10-09 06:17:47 字數 2379 閱讀 6426

1.學生成績

這是乙個判斷學生成績是否達標的程式,要求輸入學生數量,以及各個學生物理、數學、歷史三科的成績,如果總成績小於 120,程式列印 「failed」,否則列印 「passed」。

#!/usr/bin/env python3

n =int

(input

("enter the number of students: "))

data =

# 用來儲存資料的字典變數

subjects =

('physics'

,'maths'

,'history'

)# 所有科目

for i in

range(0

, n)

: name =

input

('enter the name of the student {}: '

.format

(i +1)

)# 獲得學生名稱

marks =

for x in subjects:

int(

input

('enter marks of {}: '

.format

(x))))

# 獲得每一科的分數

data[name]

= marks

for x, y in data.items():

total =

sum(y)

print

("{}'s total marks {}"

.format

(x, total)

)if total <

120:

print

(x,"failed :("

)else

:print

(x,"passed :)"

)

name 和 marks 是變數,name 用來儲存學生的名稱,marks 是個列表,用來儲存輸入的學生的成績資料。

data 是個字典,字典的鍵值對中,鍵指的是 name 的值,值指的是 marks 的值。因此會使用 data[name] = marks 將學生資料存入到 data 字典。

最後通過 for 迴圈遍歷字典,x 為學生的 name,y 為學生成績列表 marks,sum() 函式會將傳入的列表進行加和。

2.計算矩陣的乘積

這個例子裡我們計算兩個矩陣的 hadamard 乘積。要求輸入矩陣的行/列數(在這裡假設我們使用的是 n × n 的矩陣)。

#!/usr/bin/env python3

n =int

(input

("enter the value of n: "))

print

("enter values for the matrix a"

)a =

for i in

range

(n):

[int

(x)for x in

input()

.split()]

)print

("enter values for the matrix b"

)b =

for i in

range

(n):

[int

(x)for x in

input()

.split()]

)c =

for i in

range

(n):

[a[i]

[j]* b[i]

[j]for j in

range

(n)]

)print

("after matrix multiplication"

)print

("-"*7

* n)

for x in c:

for y in x:

print

(str

(y).rjust(5)

, end=

' ')

print()

print

("-"*7

* n)

這裡我們使用了幾次列表推導式。[int(x) for x in input().split()]首先通過input()獲得使用者輸入的字串,再使用split()分割字串得到一系列的數字字串,然後用int()從每個數字字串建立對應的整數值。我們也使用了[a[i][j] * b[i][j] for j in range(n)]來得到矩陣乘積的每一行資料。

資料結構例題2

1.設計求結點在二叉排序樹中層次的演算法。int bstsearch bstree bst,bstnode k if p null return 0 return n 1 2.設關鍵字序列 k1,k2,kn 1 是堆,設計演算法將關鍵字序列 k1,k2,kn 1,x 調整為堆。void adjust...

北大資料結構經典例題

資料結構練習題1 1 編一c程式,它能根據讀入的資料構造有向圖g,並輸出g的鄰接矩陣及g的拓撲序列。圖的輸入形式為 i0 j0 i1 j1 i2 j2 im jm 1 1 1,1為有向邊輸入結束標記,其餘的值都 0且。n,它們都是整數,n是有向圖g的頂點個數且40 n 0,頂點名字依次是v0,v1,...

資料結構折半查詢例題 資料結構查詢習題及答案

第九章 查詢一 選擇題1.若查詢每個記錄的概率均等,則在具有 n個記錄的連續順序檔案中採用順序查詢法查詢一 個記錄,其平均查詢長度 asl為 a n 1 2 b.n 2 c.n 1 2 d.n 2.下面關於二分查詢的敘述正確的是 a.表必須有序,表可以順序方式儲存,也可以鍊錶方式儲存 c.表必須有序...