/*单链表的整表创建*/
/********算法思路************
*1.创建链表单结点;
*2.声明一指针p和计数器变量i;
*3.让L的头结点的指针指向NULL,即建立一个带头结点的单链表;
*4.循环:
* 生成一新结点并赋值给p;
* 随机生成以数字赋值给p的数据域p->data;
* 将p插入链表之中(头插法和尾插法)
****************************/
#define OK 1
#define ERROR 0
typedef 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;
}
单链表整表的创建--尾插法
最新推荐文章于 2024-03-05 22:51:38 发布