单链表整表的创建--尾插法

来源:互联网 发布:vue.js event.target 编辑:程序博客网 时间:2024/05/21 10:37
/*单链表的整表创建*//********算法思路*************1.创建链表单结点;*2.声明一指针p和计数器变量i;*3.让L的头结点的指针指向NULL,即建立一个带头结点的单链表;*4.循环:*   生成一新结点并赋值给p;*   随机生成以数字赋值给p的数据域p->data;*   将p插入链表之中(头插法和尾插法)****************************/#define OK 1#define ERROR 0typedef int ElemType;/*定义数据元素类型,暂定为int型*/typedef int Status;/*定义程序状态返回值*//*定义一个链表结点*/typedef struct LNode{    ElemType Data;    struct LNode *Next;}Node;typedef struct LNode *List;/*定义list*//*尾插法*随机生成n个元素的值,建立带表头结点的单链线性表L*/Status CreatListTail(List L,int n){    int i,List p,r;    srand(time(0));/*初始化随机数种子*/    L = (List)malloc(sizeof(Node));    if(!L)        return ERROR;    L->Next = NULL;/*先建立一个带头结点的单链表*/    r = L;/*r指向头结点*/    for(i=0;i<n;i++){        p = (List)malloc(sizeof(Node));/*创建一个结点p*/        p->data = rand()%100+1;/*随机生成100以内的数字*/        r->Next = p;        r = p;/*将p插入链表之中,并将r指向链表的最后一个结点*/    }    r->Next = NULL;/*r指向链表的最后一个结点,r的下一个结点为空,表示该链表结束*/    return OK;}
0 0