「DA:basicdatastructure」の版間の差分

提供:classwiki
ナビゲーションに移動 検索に移動
 
56行目: 56行目:
   
   
  # バケットソートを実行する部分を完成させてください.バケットの名前をTにしてください.
  # バケットソートを実行する部分を完成させてください.バケットの名前をTにしてください.
T = [0 for i in range(100)]
# ここを埋める
   
   
  # 並べ替えたものを表示
  # 並べ替えたものを表示

2025年5月2日 (金) 00:40時点における最新版

Python を用いて連結リスト等の基本的なデータ構造を実装するコード集です.

連結リスト 基本構成と要素の追加

head = [None, None]

# リストに要素を追加する・リストの内容を表示する

def listshow():
    cur = head[1]
    while cur is not None:
        print(cur[0])
        cur = cur[1]


def listappend(n, v):
    cur = head
    for i in range(n):
        if cur is None:
            print('リストの長さが n よりも小さいため,操作を実行できません')
            return
        cur = cur[1]
    tmp = [v, cur[1]]
    cur[1] = tmp
    print('リストの %i 番目に %i を追加しました' % (n, v))


print('初期状態(何も表示されない)')
listshow()

print('先頭(0番目)に5を追加')
listappend(0, 5)
listshow()

print('先頭(0番目)に1を追加')
listappend(0, 1)
listshow()

print('2番目に30を追加')
listappend(2, 30)
listshow()

print('1番目に7を追加')
listappend(1, 7)
listshow()

print('10番目に7を追加(リストの長さが10未満なので失敗する)')
listappend(10, 7)
listshow()

バケットソート

# ソート対象の整数のリストをランダムに生成.最大値は99に設定.
import random
numbers = [random.randint(0, 99) for i in range (50)]

# バケットソートを実行する部分を完成させてください.バケットの名前をTにしてください.
T = [0 for i in range(100)]
# ここを埋める

# 並べ替えたものを表示
for i in range(100):
    for j in range(T[i]):
        print(i)