所以我刚才做了一点C编程,基本上都忘了,哈哈,但无论如何,我开始做这个“C刷新”的事情,我在网上找到了,并遵循这个二进制搜索树的例子有点松散,并遇到了一个错误。一旦我编译并运行它,它就会显示“错误:无法打开显示”。我在学校的某个Linux服务器上运行这个代码。不管怎样,这里是代码:

#include <stdio.h>
#include <stdlib.h>

#define TRUE 1
#define FALSE 0

typedef struct Node {
  int value;
  struct Node *left;
  struct Node *right;
} Node;

void add (Node *node, int value)
{
  if (value < node->value) {
    //left side
    if (node->left == NULL) {
      Node *newNode = malloc(sizeof(Node));
      newNode->value = value;
      newNode->left = NULL;
      newNode->right = NULL;
      node->left = newNode;
    } else {
  add(node->left, value);
    }
  } else {
    //right side
    if (node->right == NULL) {
      Node *newNode = malloc(sizeof(Node));
      newNode->value = value;
      newNode->left = NULL;
      newNode->right = NULL;
      node->right = newNode;
    } else {
      add(node->right, value);
    }
  }
}

int search(Node *node, int value)
{
  if (node == NULL) {
    return FALSE;
  } else if (node->value == value) {
    return TRUE;
  } else {
    if (value < node->value) {
      return search(node->left, value);
    } else {
      return search(node->right, value);
    }
  }
}

int main (int argc, char *argv[])
{
  Node root;

  root.value = 23;
  root.left = NULL;
  root.right = NULL;

  add(&root, 5);
  add(&root, 50);
  add(&root, 8);
  add(&root, 2);
  add(&root, 34);

  if (search(&root, 23)) {
    printf("23 lives in the tree.\n");
  } else {
    printf("23 does not live in the tree.\n");
  }

  if (search(&root, 42)) {
    printf("42 lives in the tree.\n");
  } else {
    printf("42 does not live in the tree.\n");
  }

  return 0;
}

代码可能看起来很长,但实际上是非常基本的。我想我可以在粘贴之前把一些代码剪掉,但我想我会把所有的东西都留下,以防我删除了一些对问题至关重要的东西。
我还认为这可能与节点有关,所以在我的main方法中,我在printf("hi");之前放了一个快速的Node root;,看看这是否会有影响,但它仍然给了我同样的错误。我在这个学校服务器上有另一个程序,它有一些printf语句,运行得很好。
我试着用谷歌搜索这个问题,但所有这些奇怪的Linux线程出现了,我真的无法理解。我的电脑是Windows,但我用一个叫做emacs的程序进行了所有这些编码,我通过一个叫做PuTTY的程序连接到学校的Linux服务器。
我还用gcc -o tree tree.c编译了它。
很抱歉写了这么多,我只是想提供尽可能多的信息。感谢所有能帮忙的人!

最佳答案

你是像“./tree”或者仅仅是“tree”那样调用它。看起来您正在尝试通过ssh运行gui应用程序。如果您在linux机器上,要查看哪个应用程序尝试连接“ssh-XY主机”。然后您应该看到一个应用程序正在启动。

关于c - 我在此非常基本的C代码中遇到“错误:无法打开显示”,但我不明白为什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9331842/

10-12 21:52