算法与线性结构学案

本文由用户“果儿么么哒11”分享发布 更新时间:2022-07-22 07:10:21 举报文档

以下为《算法与线性结构学案》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

线性数据结构应用讲义

一、知识回顾

代码一:

s=0

a=[0]*7

for i in range(6):

a[i]=i+1

s+=a[i]

for i in range(3,6):

a[i]=a[i+1]

print(a,s)

数据结构类型:______________

基本存储形式:

/

代码二:

head=0

tail=0

que=[“”]*5

s="ABCD"

for i in range(len(s)):

que[tail]=s[i]

tail+=1

while head!=tail:

print(que[head],end=" ")

head+=1

数据结构类型:______________

基本存储形式:

/



代码三:

s=[""]*10

top=-1

for i in range(5):

top+=1

s[top]=i+1

while top!=-1

print(st[top])

top-=1

数据结构类型:______________

基本存储形式:

/

代码四:

lb=[]

head=0

lb.append([1,-1])

for i in range(1,4):

lb.append([i+1,-1])

lb[i-1][1]=i

p=1 #在p后插入一项值为5

lb.append([5,lb[p 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 #k表示从1开始的报数

#输出语句提示:print(sz[i],end=",")



#约瑟夫环问题-队列

n=int(input("输入人数n:"))

m=int(input("输入报数m:"))

que=[0]*200

head=0

tail=0

for i in range(n):

que[tail]=i+1

tail+=1

k=1 #k表示从1开始的报数,head和tail控制圈内人数

#输出语句提示:print(que[head],end=",")



#约瑟夫环问题-循环链表

n=int(input("输入人数n:"))

m=int(input("输入报数m:"))

lb=[]

for i in range(n-1): #创建循环链表

lb.append([i+1,i+1])

lb.append([n,0])

head=0

p=n #p表示圈内人数

k=1 #k表示从1开始的报数

#输出语句提示:print(lb[t][0],end=",")



4.拓展实践

开始时输入整数m作为第一次出局的报数,接下来报数时每个人出列后下次报数的m都会随机变化,m的范围在[1,5],请修改自己的程序,实现随机报数出列的顺序。

5.思考

能否用字符串和栈来实现约瑟夫环的问题

[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]

以上为《算法与线性结构学案》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览