队列

队列(Queue)

插入和删除操作:只能在一端插入,而在另一端删除。

顺序存储

队列的顺序存储结构通常由一个一维数组和一个记录队列头元 素位置的变量front以及一个记录队列尾元素位置的变量rear组成

typedef int Position;
struct QNode {    
     ElementType *Data;     /* 存储元素的数组 */    
     Position Front, Rear;  /* 队列的头、尾指针 */    
     int MaxSize;           /* 队列最大容量 */
};
typedef struct QNode *Queue; 
Queue CreateQueue( int MaxSize )
{    
    Queue Q = (Queue)malloc(sizeof(struct QNode));    
    Q->Data = (ElementType *)malloc(MaxSize * sizeof(ElementType)); //注意动态数组的申请 
    Q->Front = Q->Rear = 0;    
    Q->MaxSize = MaxSize;    
    return Q;
}
bool IsFull( Queue Q )
{    
    return ((Q->Rear+1)%Q->MaxSize == Q->Front);
} //加1取余法。数组的循环使用
bool AddQ( Queue Q, ElementType X ){    
    if ( IsFull(Q) ) {        
       printf("队列满");        
       return false;    }    
    else {        
       Q->Rear = (Q->Rear+1)%Q->MaxSize;        
       Q->Data[Q->Rear] = X;       
       return true;    }
}
bool IsEmpty( Queue Q )
{    
       return (Q->Front == Q->Rear);//
} 
ElementType DeleteQ( Queue Q ){    
       if ( IsEmpty(Q) ) {         
           printf("队列空");        
           return ERROR;    }    
       else  {        
           Q->Front =(Q->Front+1)%Q->MaxSize;        
           return  Q->Data[Q->Front];    }
}

链式存储

typedef struct Node *PtrToNode;
struct Node { /* 队列中的结点 */    
      ElementType Data;    
      PtrToNode Next;
};
typedef PtrToNode Position; 
struct QNode {    
      Position Front, Rear;  /* 队列的头、尾指针 */    
      int MaxSize;           /* 队列最大容量 */
};
typedef struct QNode *Queue; 
bool IsEmpty( Queue Q )
{    
      return ( Q->Front == NULL);
} 
ElementType DeleteQ( Queue Q ){    
      Position FrontCell;     
      ElementType FrontElem;         
      if  ( IsEmpty(Q) ) {        
         printf("队列空");        
         return ERROR;    }    
      else {        
         FrontCell = Q->Front;        
         if ( Q->Front == Q->Rear ) /* 若队列只有一个元素 */            
            Q->Front = Q->Rear = NULL; /* 删除后队列置为空 */       
         else                                 
            Q->Front = Q->Front->Next;        
            FrontElem = FrontCell->Data;         
            free( FrontCell );  /* 释放被删除结点空间  */        
            return  FrontElem;    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生就业服务平台管理系统按照操作主体分为管理员和用户。管理员的功能包括学生档案管理、字典管理、试卷管理、试卷选题管理、试题表管理、考试记录表管理、答题详情表管理、错题表管理、法律法规管理、法律法规收藏管理、法律法规留言管理、就业分析管理、论坛管理、企业管理、简历管理、老师管理、简历投递管理、新闻资讯管理、新闻资讯收藏管理、新闻资讯留言管理、学生信息管理、宣传管理、学生管理、职位招聘管理、职位收藏管理、招聘咨询管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 大学生就业服务平台管理系统可以提高大学生就业服务平台信息管理问题的解决效率,优化大学生就业服务平台信息处理流程,保证大学生就业服务平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理新闻信息,管理大学生就业服务平台信息,包括考试管理,培训管理,投递管理,薪资管理等,可以管理新闻信息。 考试管理界面,管理员在考试管理界面中可以对界面中显示,可以对考试信息的考试状态进行查看,可以添加新的考试信息等。投递管理界面,管理员在投递管理界面中查看投递种类信息,投递描述信息,新增投递信息等。新闻信息管理界面,管理员在新闻信息管理界面中新增新闻信息,可以删除新闻信息。新闻信息类型管理界面,管理员在新闻信息类型管理界面查看新闻信息的工作状态,可以对新闻信息的数据进行导出,可以添加新新闻信息的信息,可以编辑新闻信息信息,删除新闻信息信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值