单链表属于线性表的一种,可以动态增减数据,它所占用的空间和位置是不需要预先分配划定的。可以根据系统的情况和实际的需求及时生成。
创建C语言描述:头插法创建单链线性表
void CreatListHead(Linklist *L,int n){
int i,randValue;
Linklist p;
*L = (Linklist)malloc(sizeof(Node));
(*L)->next = NULL;
srand(time(0)); //time(0)是得到当前时间,srand()是初始化随机种子
for(i = 0; i < n; i++){
p = (Linklist)malloc(sizeof(Node)); //生成一个新结点
randValue = rand()%100 + 1; //产生0-100的随机数
p->data = randValue;
p->next = (*L)->next;
(*L)->next = p;
}
}
typedef struct Node{
ElemType data;
struct Node *next;
}Node;
typedef struct Node *Linklist;
注意该函数的参数为二级指针 LinkList *L
因此在主函数中使用的时候,需要定义一个二级指针
Linklist *newl;
newl = (Linklist*)malloc(sizeof(Linklist*));
CreatListHead(newl,10);