1.创建单个结点
SLTNode* BuySLTNode(SLTDataType x)
{
SLTNode* newnode = (SLTNode*)malloc(sizeof(SLTNode));//申请空间
if (newnode == NULL)//判断是否为空
{
perror("BuySLTNode malloc");
exit(-1);
}
newnode->val = x;//赋值
newnode->next = NULL;//next指针指向空
return newnode;//返回创建的结点
}
2.创建具有n个结点的链表
SLTNode* CreateSList(int n)
{
int i = 0;
SLTNode* ptail = NULL,*phead = NULL;
for (i = 0; i < n; i++)
{
SLTNode* newnode = BuySLTNode(i); //创建新节点
if (phead == NULL)
{
ptail = phead = newnode;
}
else
{
ptail->next = newnode; //链接
ptail = newnode;
}
}
return phead; //返回头节点
}
//没有返回值,形参使用的是二级指针改变头指针指向的地址。
//void CreateSList(SLTNode** pphead, int n)
//{
// int i = 0;
// SLTNode* ptail = NULL;
// for (i = 0; i < n; i++)
// {
// SLTNode* newnode = BuySLTNode(i);
// if (*pphead == NULL)
// {
// ptail = *pphead = newnode;
// }
// else
// {
// ptail->next= newnode;
// ptail = newnode;
// }
// }
//}
标签:结点,ptail,SLTNode,int,创建,单个,newnode,NULL,指针 From: https://blog.51cto.com/u_15562309/7556193上述代码中提供了两种实现方式,没有注释的是返回头指针的,注释内容是没有返回值,形参使用的是二级指针改变头指针指向的地址。