• pta6-15(双端循环队列)


    题目链接:https://pintia.cn/problem-sets/1101307589335527424/problems/1101313244863737856

    题意:实现双段队列的队首出队、入队以及队尾出队、入队4个操作

    思路:

    根据裁判测试程序我们可以发现,在CreateDeque函数中将MaxSize加了1,而且这里的MaxSize定义的是最大容量,所以这是一个循环队列,且为了避免Front=Rear时会出现表示队空和队满2种情况的二义性,需要将Rear表示队尾的下一个元素,这样就需要牺牲一个存储单元,所以在CreateDeque函数中就相应的将MaxSize加了1。知道了这些就可以写出代码了。

    AC代码:

     1 bool Push( ElementType X, Deque D ){
     2     if((D->Rear+1)%D->MaxSize==D->Front)
     3         return false;
     4     D->Front=(D->MaxSize+D->Front-1)%D->MaxSize;
     5     D->Data[D->Front]=X;
     6     return true;
     7 }
     8 
     9 ElementType Pop( Deque D ){
    10     if(D->Front==D->Rear) 
    11         return ERROR;
    12     int res=D->Data[D->Front];
    13     D->Front=(D->Front+1)%D->MaxSize;
    14     return res;
    15 }
    16 
    17 bool Inject( ElementType X, Deque D ){
    18     if((D->Rear+1)%D->MaxSize==D->Front)
    19         return false;
    20     D->Data[D->Rear]=X;
    21     D->Rear=(D->Rear+1)%D->MaxSize;
    22     return true;
    23 }
    24 
    25 ElementType Eject( Deque D ){
    26     if(D->Front==D->Rear)     
    27         return ERROR;
    28     D->Rear=(D->MaxSize+D->Rear-1)%D->MaxSize;
    29     int res=D->Data[D->Rear];
    30     return res;
    31 }
  • 相关阅读:
    面试基础知识文档
    敏捷式开发
    redis总结
    自我介绍的问题
    面试2
    唐巧的iOS技术博客选摘
    IOS开发中滑动页面时NSTimer停止的问题
    iOS多线程GCD(转)
    iOS 用instancetype代替id作返回类型有什么好处?
    C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别 (转)
  • 原文地址:https://www.cnblogs.com/FrankChen831X/p/10485958.html
Copyright © 2020-2023  润新知