Я наконец сделал свою функцию добавления в связанном списке, но не могу использовать в основном. :( - PullRequest
1 голос
/ 21 мая 2011

Я наконец-то сделал свой функционал, но не могу использовать его в своей основной.Ошибки компилятора с:

невозможно преобразовать Node' to Node * 'для аргумента 1' to void add (Node *, Node *)'

Может кто-нибудь помочь мне устранить ошибку?

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;

struct Node
{
    int data;   
    struct Node *next;  
};
void add(Node* node, Node* newNode);
int main()
{ 
    struct Node *llist;
    struct Node *newNode;
    newNode->data = 13;
    llist = (Node*)malloc(sizeof(struct Node));
    llist->data = 10;
    llist->next = (Node*)malloc(sizeof(struct Node));
    llist->next->data = 15;
    llist->next->next = NULL;
    add(llist,newNode);
    printf("test\n");
    struct Node *cursor = llist;
    while (cursor != NULL) 
    {
        printf("%d\n", cursor->data);          
        cursor = cursor->next;
    } 
    system("pause");
    return 0;   
}            
void add(Node* insertafter, Node* newNode)
{
     newNode->next = insertafter->next;
     insertafter->next = newNode;
}

1 Ответ

3 голосов
/ 21 мая 2011

Должно быть void add(struct Node* node, struct Node* newNode);.

OR

struct Node
{
    int data;   
    struct Node *next;  
}Node;

Также обратите внимание, что вы присваиваете значения полям newNode, который является указателем, прежде чем выделять место для фактической структуры:

newNode = malloc(sizeof(stuct Node));

И еще одна вещь - если это C, а не C ++, вы должны удалить using namespace std;

...