草稿箱,无用且不完整,请忽略8【队列】

多团队排队

'''有t个团队的人正在排一个长队。每次新来一个人时,如果他有队友在排队,\
那么新人会插队到最后一个队友的身后。如果没有任何一个队友排队,则他会被排到长队的队尾。
现在输入n个数,对于其中每一个数x,如果x为0则代表长队的对首出队,否则则代表团队号为x的人进入长队。
例如:1 1 3 0 1 0 代表
1进队— 1进队—3进队—1出队 —1进队—1出队 
现要求对于每个0都输出团队编号
所有人的编号都在1到5000000之间。
团队不超过20个
保证不会有非法输入
输入:
12
1 3 1 2 3 0 0 0 2 0 0 0
输出:
1 1 3 3 2 2
'''
n=int(input())
li=input().split()

建队入队出队

#创建队列
head=0
tail=0
que=[""]*4

#元素入队
que[tail]="A"
tail+=1
que[tail]="B"
tail+=1
que[tail]="C"
tail+=1
#print (que)

#元素出队
que[head]=""
head+=1
#print (que)

用链表实现队列

class linknode:#定义链表节点
    def __init__(self):
        self.data=None
        self.next=None
class queuelink:#定义队列链表
    def __init__(self):
        self.head=None
    def enqueue(self,data1):#入队
        tlink=linknode()#初始化尾节点
        tlink.data=data1#将入队数据赋值给尾节点
        if self.head is None:#如果该队列链表的头指针为空
            self.head=tlink#将该节点的位置赋值给头节点
        else:#如果不为空
            tail=self.head#先将头指针的赋值给尾指针
            while tail.next:#寻找真正尾指针的位置
                tail=tail.next
            tail.next=tlink
            tlink.next=linknode()
    def dequeue(self):#出队
        temp=self.head.data
        self.head=self.head.next
        return temp

用数组实现队列

#用数组来实现队列的数据结构及操作
class queueshuzu:
    
    def __init__(self,n):#初始化队列,队列的长度为n
        self.n=n
        self.item=[""]*self.n
        self.head=0
        self.tail=0
    def enqueue(self,item1):
        self.item[self.tail]=item1
        self.tail+=1

    def dequeue(self):
        temp=self.item[self.head]
        self.head+=1
        return temp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值