내 Algorithms 클래스에 대한 이러한 지정을 통해 검색의 복잡성이 O (n)이 아닌 자동차 인벤토리를 검색 할 수있는 자동차 판매점 용 시스템을 작성할 수 있습니다. 이 문제를 해결하기 위해 자동차의 다른 모델을 가리킨 다음 3 가지 다른 BST를 사용하여 가격, 마일리지 및 연도에 대한 각 모델 검색을 허용하는 이진 검색 트리를 사용하기로했습니다. 배열 유형 C가있는 표현식에 할당
BST를
*이 상위 인덱스 + 1, 오른쪽 아이가 2 * 상위 인덱스 + 2세 구조 인 부모의 왼쪽 아이는 2 어레이 구현을 사용하여 구축 I 내가 단계 프로세스에 의해이 일반 단계에 따라 각각의 나무에 자동차를 추가 할 때
typedef struct car {
int inventoryID;
char* make;
char* model;
int year;
int mileage;
int price;
} car;
typedef struct car_BST {
car (**cars)[3];
int size;
} car_BST;
typedef struct BST {
car_BST** carModel;
int size;
} BST;
을 : 그래서 사용하고이 같은 정의
는while(1){
if (tmp->cars[val][i[val]] == NULL){
tmp->cars[val][i[val]] = newCar;
break;
}
if (i[val] > tmp->size)
incrCar_BSTSize(tmp, i[val]);
if (newCar->price >= tmp->cars[val][i[val]]->price)
i[val] = 2 * i[val] + 2;
else
i[val] = 2 * i[val] + 1;
}
그러나 컴파일러는 전자를보고 "배열 유형의 표현식 할당"이라고하는 오류가 발생했습니다.
내가 놓친 것이 있거나 근본적으로 잘못된 것을하고 있습니까?
내가 원하는 것은 'car **'의 배열을 3 개 만드는 것이고, 그 이유는'car_BST'가 3 개의 car ** 배열로 이루어져 있으며, 3 개의 배열은'car *'타입 배열의 3 개 배열입니다. 내 이해에서 올바른 구현,하지만 분명히 잘못되었습니다 – Ohunter
"3 자동차'''''또는''3''자동차''s의 배열인가요? 후자의 경우 'car ** cars [3]'이어야합니다. –
그리고 그것은 내가 얻고있는 오류를 고쳤다. 고맙습니다 – Ohunter