【发布时间】:2014-03-29 17:07:59
【问题描述】:
目前我正在实现一个简单的二叉搜索树并添加、删除、搜索或任何我想要的命令,我想在命令行中输入它然后执行该功能。
所以下面的代码会将整数 6 插入到二叉树中,看看它是否被添加“然后删除它。然后继续遍历树后序。(添加它是为了表明它不仅仅是字符串和整数需要实现的——作为参考)
"insert" 6
"search" 6
"delete" 6
"traverse" "post"
不幸的是,当我试图确定在与 arg 相关时调用哪个函数时,我不断收到指针和整数之间的比较警告
int main(int c, char *argv[2]) {
typedef struct node {
int value;
struct node * left;
struct node * right;
} * node;
/* This is irrelevant and the function is in a different file */
createNode(1);
createNode(2);
createNode(3);
createNode(4);
createNode(5);
createNode(6);
createNode(7);
createNode(8);
/* comparison warnings when deciding WHICH method to call based on the command given */
if (argv[0] == "quit") quit();
if (argv[0] == "insert") insert(argv[1]);
if (argv[0] == "delete") delete(argv[1]);
if (argv[0] == "search") search(argv[1]);
if (argv[0] == "empty") empty();
}
【问题讨论】:
-
你不能在 C 中使用
"asdf"=="asdf"进行字符串比较,你必须使用strcmp()
标签: c binary-search-tree argv