「DA:basicdatastructure」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「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: p…」) |
|||
| (同じ利用者による、間の2版が非表示) | |||
| 48行目: | 48行目: | ||
listappend(10, 7) | listappend(10, 7) | ||
listshow() | 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) | |||
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)