数据结构单链表

要对单链表进行插入,删除以及合并操作,写代码的时候除了这三个函数以外还要写什么?要不要先初始化单链表?主函数要怎么写?... 要对单链表进行插入,删除以及合并操作,写代码的时候除了这三个函数以外还要写什么?要不要先初始化单链表?主函数要怎么写? 展开
 我来答
enjoy冰心玉壶
推荐于2016-09-13 · TA获得超过798个赞
知道小有建树答主
回答量:224
采纳率:100%
帮助的人:99.1万
展开全部

单链表是一个动态存储结构,建立单链表需要动态分配存储空间,依次建立各节点。我想你说的初始化单链表应该是对各个节点的数据域赋初值吧。可以用自定义函数CreateList_L()完成。在主函数main()中可以先调用CreateList_L()建立两个单链表,如La和Lb,然后进行合并操作,比如可以调用函数MergeList_L()。

我在下面复制一下CreateList_L()函数的实现吧,在主函数中可以调用这个函数。该函数循环建立结点,并插入到表头,也就是逆序的。

void CreateList_L(LinkList &L,int n)//逆位序输入n个元素的值,建立带表头结点的单链线性表L

int i;
LNode * p;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;//先建立一个带头结点的单链表

for(i=n;i>0;--i)

p=(LinkList)malloc(sizeof(LNode));//生成新结点
printf("请输入第%d个结点的数据:\n",i);
scanf("%d",&p->data);//输入元素值

p->next=L->next;
L->next=p;//插入到表头
}
}
追问
也就是说自定义CreateList_L()函数之后就可以定义删除,插入,合并函数以及主函数吗?这样整个程序就是完整可以运行的?
追答
一个程序首先要有主函数,也就是main()函数。主函数是程序的入口,可以调用其它函数,比如删除、插入、合并函数。
比如主函数先调用了CreateList_L()函数建立两个单链表La和Lb,接下来可以再调用删除、插入、合并函数。最后可以输出合并的结果,这样函数就是完整的了。只要程序正确,就是可以运行的。
再复制一些关于主函数的知识吧。
一般而言,编写一个能运行在操作系统上的程序,都需要一个主函数。主函数意味着建立一个独立进程,且该进程成为了程序的入口,对其它各函数、方法进行调用,这样整个程序的运行轨迹就像一种栈,有时我们称之为调用栈。主函数既是程序的入口,又是程序的出口,通常我们还可以指定一个返回值再退出,以表明程序最后的结果是什么样的。
由于主函数肩负着入口和出口的重任,所以最好不要把太多的细节方面的逻辑直接放在主函数内,这样不利于维护和扩展。主函数应该尽量简洁,具体的实现细节应该封装到被调用的子函数里面去。
希望你能明白,如果还有问题可以再问我。
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
秒懂百科
2021-01-25 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.2亿
展开全部

链表:一种计算机数据结构

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式