初始化单链表和创建单链表有什么区别

wenxian8 2011-03-19 02:06:53

初始化单链表和创建单链表有什么区别?

void InitList(LinkList *&L) // 初始化单链表
{
L = (LinkList *)malloc(sizeof(LinkList)); // 创建头结点

L->next = NULL;
}

void CreateList(LinkList *&L, int a[], int n) //创建单链表
{
int i;

LinkList *s;

L = (LinkList *)malloc(sizeof(LinkList)); // 创建头结点

L->next = NULL; //单链表的头结点开始为空,头结点的数据域一般无意义

for (i=0; i<n; i++)
{
s = (LinkList *)malloc(sizeof(LinkList)); //创建新结点的内存空间

s->LotteryData = a[i]; //新结点的数据域初始化

s->next = L->next; //s创建的新结点指向头结点当时所指向的结点

L->next = s; // 头结点L指向s新结点

}

}

今天在学习这个数据结构,可是个人认为:初始化单链表和创建单链表是一样的,因为这两个函数都创建头结点

请各位高手,说一下您的理解,具体点,谢谢了

...全文
1190 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fox448 2011-10-14
  • 打赏
  • 举报
回复
C/C++ code
void InitList(LinkList *&L) // 初始化单链表
{
L = (LinkList *)malloc(sizeof(LinkList)); // 创建头结点

L->next = NULL;
}


我错了 呵呵 以上的函数是正确的

楼上的回答很好
fox448 2011-10-14
  • 打赏
  • 举报
回复

void InitList(LinkList *&L) // 初始化单链表
{
L = (LinkList *)malloc(sizeof(LinkList)); // 创建头结点

L->next = NULL;
}



这个函数有问题吧? 首先按照lz的意思应该是多了一个&
再者 传递的是指针的话 调用这个函数的时候会提示内存无法为写...
至于为什么 我在查 呵呵 我们老师跟我解析 发现他说跟没说一样 呵呵 所以自己来找找 也希望各位前辈高人指点一二
maoxing63570 2011-03-19
  • 打赏
  • 举报
回复
初始化,你只做了一件事就是分配了一个头结点,其他什么也没做。而你创建链表做的事就是为每一个节点分配空间并且初始化数据域
wenxian8 2011-03-19
  • 打赏
  • 举报
回复
好,各位贴友都说的很好,不愧是高手,谢谢了
shexinwei 2011-03-19
  • 打赏
  • 举报
回复 1
一个单链表的定义:

struct List
{
LinkList *head; //LinkList为节点类型
};

初始化一个链表,就像初始化一个变量,给链表一个值(定义一个头结点),让它不为空。
创建一个链表,就是完成整个链表的创建过程。
LouisQ007 2011-03-19
  • 打赏
  • 举报
回复 1
初始化单链表是生成一个只有头指针的空表,创建单链表会确定每个结点的数据,并确定结点数目.
qjt_uestc 2011-03-19
  • 打赏
  • 举报
回复
你的这个创建单链表函数,不只是创建了头节点,而是创建了n个节点,并且将他们连接成了一个链表

33,009

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧