C语言 关于链表的创建

Python028

C语言 关于链表的创建,第1张

#include <stdio.h>

#include <stdlib.h>

typedef int elemtype

typedef struct Lnode {

elemtype data

Lnode *next

}Lnode

Lnode *CreatList(Lnode *Head) {

Head = (Lnode *)malloc(sizeof(Lnode))

Head->next = NULL

Lnode *p = Head

printf("请输入元素的个数:")

int i,n

scanf("%d", &n)

for(i = 0 i < n ++i) {

p->next = (Lnode *)malloc(sizeof(Lnode))

printf("请输入第%d个元素:",i + 1)

scanf("%d", &p->next->data)

p = p->next

}

p->next = NULL

return Head

}

void AllList(Lnode *head) {

Lnode *p = head->next

while(p) {

printf("%d ", p->data)

p = p->next

}

printf("\n")

}

int main() {

Lnode *head = NULL

head= CreatList(head)

AllList(head)

return 0

}

函数这里

Linklist List

printf("输入创建链表的长度:")

scanf("%d",&num)

CreateList_H(List,num) //创建链表

改为 

LNode List

printf("输入创建链表的长度:")

scanf("%d",&num)

CreateList_H(&List,num) //创建链表

函数内在堆上分配好内存,但是 没有传递到栈上

另外 你的变量名很迷人