在看《大话数据结构》->3.9节单链表的创建(头插法)
C语言有点生疏了,想使用Xcode来验证,源码几乎和书上一致。
但是为什么这个会报错。按我的理解函数中形参L 应该是二级指针?
那*L应该是LinkList类型?

附上我的代码:
#include <stdio.h>
typedef int ElemType;
typedef struct Node{
ElemType data;
struct Node *next;
}Node;
typedef struct Node *LinkList; // LinkList是个指针类型
void createListHead(LinkList *L, int size){
// 1.创建头节点
*L = (LinkList)malloc(sizeof(Node));
(*L)->next = NULL;
for (int i=0; i<size; i++) {
// 2.新建节点
Node *n = (Node *)malloc(sizeof(Node));
n->data = i;
// 3.移动链
n->next = (*L)->next;
(*L)->next = n;
}
}
int main(int argc, const char * argv[]) {
LinkList *l;
createListHead(l, 10);
return 0;
}
PS:有没有什么比较好的数据结构教程网址推荐呀?最好能有C的源码示例
我找到这个:但是好像不是很系统。
https://www.geeksforgeeks.org/data-structures/linked-list/
C语言有点生疏了,想使用Xcode来验证,源码几乎和书上一致。
但是为什么这个会报错。按我的理解函数中形参L 应该是二级指针?
那*L应该是LinkList类型?

附上我的代码:
#include <stdio.h>
typedef int ElemType;
typedef struct Node{
ElemType data;
struct Node *next;
}Node;
typedef struct Node *LinkList; // LinkList是个指针类型
void createListHead(LinkList *L, int size){
// 1.创建头节点
*L = (LinkList)malloc(sizeof(Node));
(*L)->next = NULL;
for (int i=0; i<size; i++) {
// 2.新建节点
Node *n = (Node *)malloc(sizeof(Node));
n->data = i;
// 3.移动链
n->next = (*L)->next;
(*L)->next = n;
}
}
int main(int argc, const char * argv[]) {
LinkList *l;
createListHead(l, 10);
return 0;
}
PS:有没有什么比较好的数据结构教程网址推荐呀?最好能有C的源码示例
我找到这个:但是好像不是很系统。
https://www.geeksforgeeks.org/data-structures/linked-list/




