用c语言创建链表

Python013

用c语言创建链表,第1张

主函数这里

Linklist List

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

scanf("%d",&num)

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

改为 

LNode List

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

scanf("%d",&num)

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

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

另外 你的变量名很迷人

可以用头插法或尾插法

(下面用尾插法)

思想为:让你输入一串字符串, 为每个字符创建一个节点,添加到链表的后面.直到输入的字符为@为止.

#include <stdio.h>

#include <malloc.h>

typedef char datatype

typedef struct node

{

datatype data

struct node *next

}linklist

linklist *p,*q,*head

main()

{

char c

head = (linklist *)malloc(sizeof(linklist))

head->next = NULL

p = head

c = getchar()

while(c != '@')

{

q = (linklist *)malloc(sizeof(linklist))

q->data = c

q->next = NULL

p->next = q

p = p->next

c = getchar()

}

}

可以在 main() 最后加上

for(p=head->nextp!=NULLp=p->next)

{

printf("%5c", p->data)

}

来测试结果,本人已经TC 2.0下面测试通过.

用一个结构体

struct Node{

int value

struct Node *next

}

value是这个元素的值,*next是指向想一个元素的指针,

数组的比较,数组可以直接通过下标查询其中的元素比如a[9],而单链表只能遍历第9个元素以前的所有元素才能找到第9个元素。单链表的插入和删除比数组简单