数据结构队列中元素删除问题。

[复制链接]
查看11 | 回复1 | 2018-3-20 17:54:42 | 显示全部楼层 |阅读模式
队列是先进先出的先性表。由于学得不够,只会写删除队头元素的代码,如果要删除队中间的元素,代码该怎么写?问题来源于栈和队列重的停车场问题。停车场相当于栈,过道相当于队列,当停车场停满车后,后面来的车便依次停在过道上。当过道上中间那辆车要开走的时候,过道中开走车之前的车该怎么办,车开走后,过道上的车又该怎么恢复原来的停车次序。。。麻烦能不能用代码说明下具体操作。。。非常感谢。。。

回复

使用道具 举报

千问 | 2018-3-20 17:54:42 | 显示全部楼层
依次弹出,再压入。<-1-2-3-4-*-6-7-8-9-假设,5号车要出去。因为是队列,先进先出原则,5号要动,它就必须是队顶元素,也就是1234号都不在队列里。相当于让路给5号。我觉得这个问题太牵强,如果你的意思是,过后的顺序是:<-1-2-3-4-6-7-8-9-那很好办,不用当他是个队列,按数组处理就好。for(int i=6 ; i<=n ; i++) A[i-1] = A;A[n] = 0;这样6 7 8 9就顺序前移了。如果你要模拟这个过程,那就把这个队列写的类似一个栈,有压栈操作。先顺序弹出12345号,现在队列头指针在6,头指针-1,压入4号,以此类推。LZ不懂可以Hi我,或者留言。这个操作真的没必要,非常
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行