0
我有這個重新編譯爲項目文件的代碼。在它變成一個項目文件之前它運行良好。主要的錯誤是鏈接器錯誤,指出一些結構變量被重複,從我以前的經驗來看,如果我給它添加一些外部參數,它會得到修復,但令我驚訝的是它沒有改變這個技巧,也沒有什麼改變。使用標題的turbo c項目文件中的鏈接器錯誤
注:
我使用的渦輪C作爲需要編譯器學校和我們在學校裏使用所以是
是重複的變量是什麼:
根,溫度,T2 ,和T1
ħ EADER:
#ifndef BSTDLL_H
#define BSTDLL_H
#include<stdio.h>
#include<stdlib.h>
struct btnode
{
int value;
struct btnode *l;
struct btnode *r;
}*root = NULL, *temp = NULL, *t2, *t1;
void delete1();
void insert();
void delete();
void create();
void search(struct btnode *t);
void search1(struct btnode *t,int data);
int smallest(struct btnode *t);
int largest(struct btnode *t);
void print(struct btnode *t, int x, int i, int y);
#endif
打印:
#include "BSTDLL.h"
#include<stdio.h>
#include<stdlib.h>
void print(struct btnode *t, int x, int i, int y){
i = i/2 + 2;
if (root == NULL){
printf("No elements in a tree to display");
return;
}
if(y > 6){
return;
}else{
if (t->l != NULL){
print(t->l, (x - i), i, (y + 1));
}
gotoxy(x, y * 2);
printf("%d ", t->value);
if (t->r != NULL){
print(t->r, (x + i), i, (y + 1));
}
}
}
插入:
#include "BSTDLL.h"
#include<stdio.h>
#include<stdlib.h>
/* To insert a node in the tree */
void insert()
{
create();
if (root == NULL)
root = temp;
else
search(root);
}
/* To create a node */
void create(){
int data;
printf("Enter value: ");
scanf("%d", &data);
temp = (struct btnode *)malloc(1*sizeof(struct btnode));
temp->value = data;
temp->l = temp->r = NULL;
}
/* Function to search the appropriate position to insert the new node */
void search(struct btnode *t){
if ((temp->value > t->value) && (t->r != NULL)) /* value more than root node value insert at right */
search(t->r);
else if ((temp->value > t->value) && (t->r == NULL))
t->r = temp;
else if ((temp->value < t->value) && (t->l != NULL)) /* value less than root node value insert at left */
search(t->l);
else if ((temp->value < t->value) && (t->l == NULL))
t->l = temp;
}
刪除:
#include "BSTDLL.h"
#include<stdio.h>
#include<stdlib.h>
/* To check for the deleted node */
void delete()
{
int data;
if (root == NULL)
{
printf("No elements in a tree to delete");
return;
}
printf("Enter the data to be deleted : ");
scanf("%d", &data);
t1 = root;
t2 = root;
search1(root, data);
}
主要
#include "BSTDLL.h"
#include<stdio.h>
#include<stdlib.h>
struct btnode *root = NULL, *temp = NULL, *t2, *t1;
void main(){
int ch;
clrscr();
while(1){
printf("\n\n\n\n\n\n\n\n\n\nOPERATIONS ---");
printf("\n1 - Insert\n");
printf("2 - Delete\n");
printf("3 - Exit\n");
printf("\nChoice : ");
scanf("%d", &ch);
switch (ch)
{
case 1:
insert();
clrscr();
print(root, 40, 30, 2);
break;
case 2:
delete();
clrscr();
print(root, 40, 30, 2);
break;
case 3:
exit(0);
default :
printf("Wrong choice");
break;
}
}
}
我沒有在我的main.c文件添加任何東西
P.S我省略了其他功能,因爲他們在這裏我的困境,也許無關。
仍然給我鏈接器錯誤,我添加了主要部分上面的void main() – magicianiam
@magicianIam編譯以前的文件可能被使用。它會刪除目標文件或重新構建所有目標文件。 – BLUEPIXY
赦免?我試圖重新編譯並重新運行該程序,但問題仍然存在,將嘗試刪除tcfonig.tc – magicianiam