首页 > 其他 > 详细

关于栈和队列

时间:2020-12-18 23:58:41      阅读:39      评论:0      收藏:0      [点我收藏+]

 

 

 

 技术分享图片

 

 注意入队的时候,只改变尾指针 

出队的时候改变头指针front

 

//二叉链表,统计二叉树非叶子结点个数的层次遍历算法
typedef struct BNode{
    Elemtype data;
    struct BNode *lchild,*rchild; 
}BNode,*BTree;
int count=0;
int countNode(BTree *bt)
{
   if(bt->lchild==NULL&&bt->rchild==NULL)
   {
       count++;
       return ;
   }
}





//非递归算法
typedef struct BNode{
    DataType data;
    struct BNode *lchild,*rchild;
}BNode,*BTree;//定义数据结构 BNode(结点)  BTree




int leverOrder(Bitree bt) //
{
  BTree Queue[MAXSIZE];//定义队列
  int front,rear,count;
  if(bt==NULL) //空树遍历结束
  front  = -1;rear=0; //设置空栈
  count =0;

  Queue[rear]=bt;//根节点入队列
  while(rear!=front) //队列不空,继续遍历,否则遍历结束
  {
    front++;//出队  紧跟rear
    if(Queue[front]->lchild=NULL||Queue[front]->rchild!=NULL)
    {
        count++;
    }

    if(Queue[front]->lchild!=NULL)//左孩子入队
    {
      rear++;
    Queue[rear]=Queue[front]->lchild;
    } 
    
    if(Queue[front]->rchild!=NULL)
    {
      rear++; Queue[rear]=Queue[front]->rchild;
    }


    return count;

  }



}

 

关于栈和队列

原文:https://www.cnblogs.com/chuanxuzhao/p/14157614.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!