「DA:basicdatastructure」の版間の差分
ナビゲーションに移動
検索に移動
| 51行目: | 51行目: | ||
= バケットソート = | = バケットソート = | ||
# | # ソート対象の整数のリストをランダムに生成.最大値は99に設定. | ||
import random | import random | ||
numbers = [random.randint(0, 99) for i in range (50)] | numbers = [random.randint(0, 99) for i in range (50)] | ||
2025年4月8日 (火) 03:18時点における版
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にしてください.
# 並べ替えたものを表示
for i in range(100):
for j in range(T[i]):
print(i)