当前位置: 首页 > wzjs >正文

那个做头像的网站好网站续费管理系统

那个做头像的网站好,网站续费管理系统,过期网站查询,专业建设的基本要素1. 题目 2. 思路分析 思路:1)往非空队列里插入数据(入队列); 2)将非空队列的前size-1个元素挪到空队列; 3)将非空队列的队尾元素出队列,并返回栈顶元素。 3. 代码实现 typedef …

1. 题目

 2. 思路分析

思路:1)往非空队列里插入数据(入队列);

2)将非空队列的前size-1个元素挪到空队列;

3)将非空队列的队尾元素出队列,并返回栈顶元素。

3. 代码实现 

typedef int QDataType;
typedef struct QueueNode {QDataType data;struct QueueNode* next;
} QueueNode;typedef struct Queue {QueueNode* phead;QueueNode* ptail;int size;
} Queue;// 初始化
void QueueInit(Queue* pq) {assert(pq);pq->phead = pq->ptail = NULL;pq->size = 0;
}
// 销毁
void QueueDestory(Queue* pq) {assert(pq);QueueNode* pcur = pq->phead;while (pcur) {QueueNode* next = pcur->next;free(pcur);// pcur = NULL;pcur = next;}pq->phead = pq->ptail = NULL;pq->size = 0;
}
// 队列判空
bool QueueEmpty(Queue* pq) {assert(pq);return pq->phead == NULL;
}
// 入队列
void QueuePush(Queue* pq, QDataType x) {assert(pq);// 申请新的结点QueueNode* newnode = (QueueNode*)malloc(sizeof(QueueNode));if (newnode == NULL) {perror("malloc fail!\n");exit(1);}newnode->data = x;newnode->next = NULL;// 空队列if (pq->phead == NULL) {pq->phead = pq->ptail = newnode;} else {pq->ptail->next = newnode;pq->ptail = pq->ptail->next;}pq->size++;
}
// 队列有效元素个数
int QueueSize(Queue* pq) {assert(pq);// QueueNode* pcur = pq->phead;// int size = 0;// while (pcur)//{//	pcur = pcur->next;//	size++;// }// return size;return pq->size;
}
// 出队列
void QueuePop(Queue* pq) {assert(pq);assert(!QueueEmpty(pq));// 只有一个结点时if (pq->phead == pq->ptail) {free(pq->phead);pq->phead = pq->ptail = NULL;} else {QueueNode* next = pq->phead->next;free(pq->phead);pq->phead = next;}pq->size--;
}
// 取队头元素
QDataType QueueFront(Queue* pq) {assert(pq);assert(!QueueEmpty(pq));return pq->phead->data;
}
// 取队尾元素
QDataType QueueBack(Queue* pq) {assert(pq);assert(!QueueEmpty(pq));return pq->ptail->data;
}
//这里是队列结构和相关方法/typedef struct {Queue q1;Queue q2;
} MyStack;MyStack* myStackCreate() {MyStack* pa=(MyStack*)malloc(sizeof(MyStack));QueueInit(&pa->q1);QueueInit(&pa->q2);return pa;
}
//将元素 x 压入栈顶
void myStackPush(MyStack* obj, int x) {//往非空队列插入数据--判空if(QueueEmpty(&obj->q1)){QueuePush(&obj->q2,x);}else{QueuePush(&obj->q1,x);}
}
//移除并返回栈顶元素
int myStackPop(MyStack* obj) {Queue* emp=&obj->q1;Queue* noemp=&obj->q2;if(QueueEmpty(&obj->q2)){noemp=&obj->q1;emp=&obj->q2;}while(QueueSize(noemp)>1){QueuePush(emp,QueueFront(noemp));QueuePop(noemp);}int top=QueueFront(noemp);QueuePop(noemp);return top;
}int myStackTop(MyStack* obj) {if(!QueueEmpty(&obj->q1)){return QueueBack(&obj->q1);}else{return QueueBack(&obj->q2);}
}bool myStackEmpty(MyStack* obj) {return QueueEmpty(&obj->q1)&&QueueEmpty(&obj->q2);
}void myStackFree(MyStack* obj) {QueueDestory(&obj->q1);QueueDestory(&obj->q2);free(obj);obj=NULL;
}

http://www.dtcms.com/wzjs/569631.html

相关文章:

  • 360免费建站软仵下载沈阳学网站制作学校
  • 关于要求建设网站的请示wordpress 多模板下载
  • 专门做酒的网站合肥响应式网站建设
  • 网站的跟目录现货平台在中国合法吗
  • 北京专业网站建设网站推广wordpress 模版制作
  • 国外上市网络公司排名德阳网站怎么做seo
  • 团支部智慧团建网站公众号运营总结
  • wordpress前台登录框南京网站优化方案
  • 河北石家庄网站建设网站推广的网站
  • 做网页网站需要钱吗广告设计与制作包括哪些内容
  • wordpress付费才能看企业免费网站优化服务
  • 响应式网站要怎么做上海网站建设专业公司
  • 秦淮区建设局网站做网站要求付全款
  • 解决网站提示有风险做网站选服务器带宽
  • 深圳专业营销网站网站突然掉排名
  • 网站需要网监备案n怎样建立自己的网站
  • 建设商城网站公司 百度百科网站特色分析
  • 一个网站的设计思路如果在阿里云上做自己的网站
  • 准备php和易语言混编做网站郑州关键词优化平台
  • 那些网站是php开发的wordpress 主页地址
  • 展示网站开发阿里云网站建设程序
  • 网站推广软件哪个好电影网页设计教程
  • 小公司自己怎样做网站网站怎么ftp
  • 雇人做淘宝网站多少钱html5素材网
  • 微信 网站模板wordpress嵌入视频播放
  • 在大学做网站赚钱吗wordpress登录选项
  • 南京网站开发选南京乐识赞互联网网站开发服务合同
  • wordpress建站后台wordpress 广告 能赚多少
  • 网站建设目录结构苏州美丽乡村建设网站
  • 做网站的哪个好现在比较好的营销平台