C语言下单链表的创建

单链表属于线性表的一种,可以动态增减数据,它所占用的空间和位置是不需要预先分配划定的。可以根据系统的情况和实际的需求及时生成。

创建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);

你可能感兴趣的:(C/C++,数据结构与算法分析)