c - 我在这个非常基本的 C 代码中得到一个 "Error: Can' t Open Display,但我不明白为什么

标签 c linux binary-tree binary-search

所以我不久前做了一些 C 编程,基本上把它全忘了,哈哈,但无论如何我开始做这个我在网上找到的“C Refresher”东西,并且有点松散地遵循这个二叉搜索树示例并遇到错误。一旦我编译并运行它,它就会显示“错误:无法打开显示”。我在学校的某种 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;
}

代码可能看起来很长,但实际上非常基础。我认为我可以在将代码粘贴到此处之前先删除一些代码,但我想我会保留所有内容,以防我删除对问题至关重要的内容。

我还认为它可能与 Node 相关,所以在我的 main 方法中,我在 之前快速添加了一个 printf("hi"); >Node root; 看看这是否会有所作为,但它仍然给了我同样的错误。我在这所学校服务器上的帐户上还有另一个程序,该程序有一些 printf 语句,它运行得很好。

我尝试用谷歌搜索这个问题,但所有这些奇怪的 Linux 线程都出现了,我无法真正理解它。我的计算机是 Windows,但我在一个名为 emacs 的程序中完成了所有这些编码,我通过一个名为 PuTTY 的程序获得了该程序,该程序允许我连接到学校的 Linux 服务器。

我还用 gcc -o tree tree.c 编译了它。

抱歉写了这么多,我只是想提供尽可能多的信息。感谢任何能提供帮助的人!

最佳答案

你是像“./tree”一样调用它还是只是“tree”。看起来您正在尝试通过 ssh 运行 gui 应用程序。如果您使用的是 Linux 机器,要查看哪个应用程序,请尝试使用“ssh -XY HOST”连接。然后您应该会看到一个应用程序正在启动。

关于c - 我在这个非常基本的 C 代码中得到一个 "Error: Can' t Open Display,但我不明白为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9331842/

相关文章:

c - Bison:纯推送解析器中存储的最后一个 $$ 值在哪里?

c - 如何在 C 中将整数拆分为单独的多位整数?

c - 额外的变量导致段错误

php - Apache 访问 Linux 中的 NTFS 链接文件夹

linux - 关于 getsockname 的联机帮助页和内核行为不匹配

linux - 在(Ubuntu 14.04、Mint 17.2 或 Fedora)上安装 CUDA 的确定且稳定的方法

c++ - 有什么理由更喜欢 memset/ZeroMemory 而不是 WinAPI 结构的值初始化?

c++ - C++ 中的二叉树基础知识

c++ - 如何使用这个二叉树类?

java - 在整个二叉搜索树中搜索