首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将PreOrder遍历转换为有序

将PreOrder遍历转换为有序
EN

Stack Overflow用户
提问于 2019-03-13 16:11:25
回答 1查看 994关注 0票数 0

我想将printPreOder函数的数据作为参数推送到printInOrder函数中,就像我对根节点所做的那样。但是,每当我尝试将特定节点推送到它的时候,它都会抛出一个错误,或者在我运行之后没有显示任何结果。整个程序都是关于将PreOrder遍历转换为InOrder遍历

代码语言:javascript
复制
#include <stdio.h>
#include <iostream>
#include <queue>
using namespace std;
struct Node
{
  string data;
  Node *left;
  Node *right;
  Node *none;
  Node *noode;
};
struct Node *createnode(string value)
{
  Node *newnode = new Node;
  newnode->data = value;
  newnode->left = NULL;
  newnode->right = NULL;
  return newnode;
}
void printLevelOrder(Node *node)
{
  if (node == NULL)
  {
    return;
  }

  queue <Node *> q;
  q.push(node);

  while (q.empty() == false)
  {
    Node *newnode = q.front();
    cout << newnode->data << " ";
    q.pop();

    if (newnode->left != NULL)
    {
      q.push(newnode->left);
    }

    if (newnode->right != NULL)
    {
      q.push(newnode->right);
    }
  }
}

void printPreOrder(Node *noode)
{
  if (noode == NULL)
  {
    return;
  }

  cout << noode->data << " ";
  printPreOrder(noode->left);
  printPreOrder(noode->right);
}
void printInOrder(Node *none)
{
  if (none == NULL)
  {
    return;
  }

  printInOrder(none->left);
  cout << none->data << " ";
  printInOrder(none->right);
}

int main()
{
  struct Node *root = createnode("3");
  root->left = createnode("7");
  root->right = createnode("8");
  root->left->left = createnode("10");
  root->left->right = createnode("12");
  cout << "\nLevel Order Traversal:\n";
  printLevelOrder(root);
  cout << "\nPreOrder Traversal:\n";
  printPreOrder(root);
  cout << "\nInOrder Traversal:\n";
  printInOrder(root->noode->data);
  return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2019-03-13 16:58:35

一旦你纠正了传递给printInOrder();函数的参数,你的代码就能正常工作。在你的代码中,你试图传递一个整型的值,但是参数指定你需要传递类型'Node*‘,所以你传递的不是根->节点->数据,而是根->节点->数据,这将会做你想要的事情。

代码语言:javascript
复制
        #include <stdio.h>
        #include <iostream>
        #include <queue>
        using namespace std;
        struct Node
        {
          string data;
          Node *left;
          Node *right;
          Node *none;
          Node *noode;
        };
        struct Node *createnode(string value)
        {
          Node *newnode = new Node;
          newnode->data = value;
          newnode->left = NULL;
          newnode->right = NULL;
          return newnode;
        }
        void printLevelOrder(Node *node)
        {
          if (node == NULL)
          {
            return;
          }

          queue <Node *> q;
          q.push(node);

          while (q.empty() == false)
          {
            Node *newnode = q.front();
            cout << newnode->data << " ";
            q.pop();

            if (newnode->left != NULL)
            {
              q.push(newnode->left);
            }

            if (newnode->right != NULL)
            {
              q.push(newnode->right);
            }
          }
        }

        void printPreOrder(Node *noode)
        {
          if (noode == NULL)
          {
            return;
          }

          cout << noode->data << " ";
          printPreOrder(noode->left);
          printPreOrder(noode->right);
        }
        void printInOrder(Node *none)
        {
          if (none == NULL)
          {
            return;
          }

          printInOrder(none->left);
          cout << none->data << " ";
          printInOrder(none->right);
        }

        int main()
        {
          struct Node *root = createnode("3");
          root->left = createnode("7");
          root->right = createnode("8");
          root->left->left = createnode("10");
          root->left->right = createnode("12");
          cout << "\nLevel Order Traversal:\n";
          printLevelOrder(root);
          cout << "\nPreOrder Traversal:\n";
          printPreOrder(root);
          cout << "\nInOrder Traversal:\n";
          printInOrder(root);
          return 0;
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55137086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档