所以我不久前做了一些 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/