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

网站营销合同动漫设计与制作工资

网站营销合同,动漫设计与制作工资,wordpress如何自己添加锚文本,动漫制作技术是学什么一、队列知识补充 有关队列的知识请详见博主的另一篇博客:http://t.csdnimg.cn/3PwO4 本文仅仅附上需要的队列操作供读者参考 //结构体定义 typedef struct BinaryTreeNode* QDataType;typedef struct QueueNode {struct QueueNode* next;QDataType val; }QNode;…

一、队列知识补充

有关队列的知识请详见博主的另一篇博客:http://t.csdnimg.cn/3PwO4

本文仅仅附上需要的队列操作供读者参考

//结构体定义
typedef struct BinaryTreeNode* QDataType;typedef struct QueueNode
{struct QueueNode* next;QDataType val;
}QNode;typedef struct Queue
{QNode* phead;QNode* ptail;int size;
}Queue;//入队
void QueuePush(Queue* pq, QDataType x)
{assert(pq);QNode* newnode = InitNewnode(x);if (pq->phead == NULL){pq->phead = pq->ptail = newnode;}else{pq->ptail->next = newnode;pq->ptail = newnode;}pq->size++;
}
//出队
void QueuePop(Queue* pq)
{assert(pq);assert(pq->size != 0);if (pq->phead->next == NULL){free(pq->phead);pq->phead = pq->ptail = NULL;}else{QNode* temp = pq->phead->next;free(pq->phead);pq->phead = temp;}pq->size--;
}
//取出队头元素
QDataType QueueFront(Queue* pq)
{assert(pq);assert(pq->phead);return pq->phead->val;
}
//销毁队列
void QueueDestroy(Queue* pq)
{assert(pq);QNode* pcur = pq->phead;while (pcur){QNode* temp = pcur->next;free(pcur);pcur = temp;}pq->phead = pq->ptail = NULL;pq->size = 0;
}

二、层序遍历

2.1 递归思路

采用队列先进先出的特点,按照层序入队即可按照层序出队,从而达到层序遍历的目的。

考虑一般情况:

将根节点入队,下一次根节点出队的同时将孩子结点入队。

考虑特殊情况:

孩子结点可看作子树的根节点,重复递归即可。

只要队列不为空就一直递归

2.2 图解

2.3 C语言实现

注意:出队入队要额外新建变量来复制结点,避免销毁队列引发的原二叉树丢失的问题。

void TreeLevelOrder(BTNode* root)
{Queue q;QueueInit(&q);if (root){QueuePush(&q, root);}while (QueueEmpty(&q)==false){BTNode* front = QueueFront(&q);QueuePop(&q);printf("%d ", front->data);if (front->left){QueuePush(&q, front->left);}if (front->right){QueuePush(&q, front->right);}}QueueDestroy(&q);
}

三、判断一棵树是不是完全二叉树

3.0 回顾

        什么是完全二叉树?完全二叉树是一种特殊的二叉树,其中除了最后一层外,每一层的节点都被填满,而且最后一层的节点都尽可能地靠左排列。换句话说,如果一个层次深度为k的树,除了第 k 层外,其他各层都是满的,并且第 k 层的节点都依次靠左排列,则这棵树就是完全二叉树。

        所以仅仅通过判断结点的范围处于k-1层满二叉树和k层满二叉树之间的解法是错误的!!       

3.1 思路

通过层序遍历,将第一次出现空结点的地方找到,只需判断后续遍历的过程中是否存在非空结点即可,若存在就不是完全二叉树,反之则是。

分两个循环解决该问题。

  1. 第一层循环本质即为层序遍历,找到第一个空节点就退出。
  2. 第二层循环依然为层序遍历,看是否可以找到非空结点。当队列里面没有元素即层序遍历结束时判断完成。

3.2 C语言实现

bool BinaryTreeComplete(BTNode* root)
{Queue q;QueueInit(&q);if (root != NULL){QueuePush(&q, root);}//入队遇到空停止入队while (!QueueEmpty(&q)){BTNode* front = QueueFront(&q);QueuePop(&q);if (front == NULL){break;}QueuePush(&q, front->left);QueuePush(&q, front->right);}//判断后面是否还有非空while (!QueueEmpty(&q)){BTNode* front = QueueFront(&q);QueuePop(&q);if (front != NULL){return false;}}QueueDestroy(&q);return true;
}

http://www.yayakq.cn/news/334406/

相关文章:

  • 做的公司网站风格跟样式和别人一样住房和城乡建设部证书
  • 建设银行网站登不上wordpress 原创主题
  • 有关计算机网站建设的论文做养生的网站多吗
  • 乐山市住房和城乡规划建设局网站电子商务就是网络营销
  • 怎么查看网站是哪家公司做的温州微网站制作公司推荐
  • 国外对旅游网站的建设开发板停止维护后如何处理
  • 有没有专门做二手车网站网站代码需要注意什么
  • 青岛建网站哪个好鹰潭做网站公司
  • 护肤品网站建设方案四川建设招投标网站
  • 一鸣东莞网站建设公司网站图片怎么换
  • 营销型网站建设计划书崇信县门户网
  • 网站建设的公司好做吗wordpress自豪地
  • 网页制作公司报价谈判方案重庆做优化的网络公司
  • 屏蔽蜘蛛网站还会被收录吗网站建设交流发言
  • 海淀团队组建网站北京国税局网站做票种核定时
  • 做a的视频在线观看网站wordpress 添加用户
  • 网站建设知识平台网站会员体系
  • php企业网站开发源码常州市建设项目审批网站
  • 建设通是个什么网站自己做视频网站
  • 大连电力工程招标网北京网络优化公司
  • 邢台市网站制作 网站建设大连网站设计
  • 服饰网站建设创办个人网站
  • wordpress建站前端有的网站显示正在建设中
  • 做企业福利网站起名做中国最专业的健康门户网站
  • 西宁专业做网站网站分析与优化的文章
  • 本地电脑静态网站建设江山集团网站建设
  • 网站建设费用价格明细表怎么开网站做网红
  • 做彩票网站是违法wordpress文章内多页效果
  • 昆山网站建设义搏wordpress显示未开启stmp服务
  • 网站开发哪家公司口碑好山西网站建设报价单