算法 队列

/*
队列:队列是一种特殊的线性结构,它只允许在队列的首都(head)进行删除操作,即head++,在队列的尾部进行插入操作,即tail++;假设:在原来数组里加一个0,head=1,记录队首,tail=10,记录为队尾的下一个位置,那么head和tail之间的数就是对列的有效数,如果head==tail,即数组为空。之所以不用tail=9记录队尾,是因为,当数组只剩下一个元素时,队首队尾重合会有一些麻烦。
*/

#pragma mark - - 队列
/*
 假设:有一组加密后的数字:6,3,1,7,5,8,9,2,4,它的解密规则如下,首先将第1个数删除,紧接着将第2个数放在这串数字的末尾,然后再将3个数删除,将第4个数放到末尾...按照上述操作,拿到所有删除的数即为解密后的数字,请问解密后的数字?
 */


-(void)duilieSort {
    int a[101] = {0,6,3,1,7,5,8,9,2,4};
    int head,tail;
    // 初始化队列
    head =1;
    tail =10;
    while (head<tail) {
        // 打印队首 并将队首移除队列
        NSLog(@"%d",a[head]);
        head++;
        // 将新的队首 添加到队尾
        a[tail] = a[head];
        tail ++;
        // 移除新的队首
        head ++;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容