단일 연결 목록이 있고이 구조에 새 요소를 추가하려고합니다.목록에 새 요소 추가
절차 코드에서 NULL을 가리키는 구조체와 헤드 포인터를 만듭니다. 이것은 내가 OO 코드에서이 문제를 해결하는 방법입니다 : 목록이 비어 있으면 내가 확인하고 있습니다 할 것이며, 경우, 설정 머리가 새로 만든 첫 번째 요소를 가리 키도록
typedef struct a {
int element;
struct a *next;
} a;
typedef struct b {
int element;
struct b *next;
} b;
class Foo {
a *a; // head for a structure = NULL at the beginning
b *b; // head for b structure = NULL at the beginning
다음 일은.
내가하는 구조를 전달하고 싶기 때문에이 작업은 템플릿이어야합니다. 따라서 :
template <class T> void Addition_Struct::add(T head)
{
if(head == NULL)
{
head = (T*)malloc(sizeof(T));
head->next = NULL;
}
}
그리고 지금 몇 가지 문제가 있습니다. 나는 T가 구조체의 타입이어야하고, 헤드 포인터 (NULL NULL)를 향해야한다고 생각한다. 컴파일러에서 malloc 줄에 cannot convert "a**" to "a*"
오류가 발생합니다. 뭐가 문제 야?
샘플 함수 호출은 다음과 같습니다 당신은 당신의 템플릿 함수에 T
의 의미를 혼동
add(this->a);
왜 C++을 사용하는 경우 태그를 "c"로 지정해야합니까? 그렇다면 왜'malloc'을 사용하고'new'를 사용하지 않는 걸까요? –
yyou는'convertToStack'을 어떻게 호출합니까? –
예, 코드를 변경하는 것을 완전히 잊었습니다 - 수정 됨, 죄송합니다. – user2252786