我有一個.c和一個.h文件。所有的鏈表方法都是由我的教授提供的。我想通過創建一個main
函數並嘗試添加到鏈接列表然後顯示鏈接列表來測試鏈表。我該怎麼做main
函數?以下是我有:添加到鏈接列表
int main() {
linkedList* test = createLinkedList();
addToLinkedList(test, value);
displayLinkedList(test);
}
我也試過這個代碼:
int main() {
linkedList* hello = createLinkedList();
struct tnode* test = "hello";
addToLinkedList(hello, test);
return (0);
}
不過,我有什麼不工作。
這裏是教授給我們的代碼:
TESTlinkedlist.c:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "TESTlinkedList.h"
/* Creates a linked list */
linkedList* createLinkedList() {
return NULL;
}
/* Displays the linked list */
void displayLinkedList(linkedList* ll) {
linkedList* p = ll;
printf("[");
while (p != NULL) {
printf(" % d " , p -> node -> c);
p = p -> next;
}
printf("]\n");
}
/* Adds a tree node to the linked list */
void addToLinkedList(linkedList** ll, tnode* val) {
linkedList* nn = (linkedList*)malloc(sizeof(linkedList));
nn -> node = val;
nn -> next = NULL;
linkedList* p = *ll;
if (p == NULL) {
p = nn;
} else {
while (p -> next != NULL) {
p = p -> next;
}
p -> next = nn;
}
}
TESTlinkedlist.h:
/* Include Guards to prevent double inclusion with include directive */
#ifndef TESTLINKEDLIST_H
#define TESTLINKEDLIST_H
/* Typedef Structures */
typedef struct tnode {
double weight;
int c;
struct tNode* right;
struct tNode* left;
struct tNode* parent;
} tnode;
typedef struct ll {
tnode* node;
struct ll* next;
} linkedList;
/* Methods */
linkedList* createLinkedList();
void displayLinkedList(linkedList* ll);
void addToLinkedList(linkedList** ll, tnode* val);
void addInOrder(linkedList **ll, tnode* nn);
#endif /* LINKEDLIST_H */
任何線索我怎麼可以讓一個新鏈接列表,在節點上創建並將其添加到該鏈接列表中,然後在給定方法的情況下顯示它我的教授放下?
我該如何創建tnode並將其添加到那裏? – Team43
您需要創建二進制樹添加功能 –
@ Team43顯示功能唯一關心的是'c'。所以你可以'malloc'節點,將所有指針設置爲NULL,將權重設置爲0,然後將'c'設置爲任何適合你的值。 – user3386109