没网站可以做seo吗,校园文化创意产品设计,品牌建设目标包括哪些方面,网站内容及功能模块设计概念#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。单链表的形式就像一条铁链环环相扣它与顺序表最大的不同是#xff0c;单链表的数据存储是在不连续的空间#xff0c;存储的数据里面含有…概念链表是一种物理存储结构上非连续、非顺序的存储结构数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。单链表的形式就像一条铁链环环相扣它与顺序表最大的不同是单链表的数据存储是在不连续的空间存储的数据里面含有下一个数据的地址我们访问下一个数据只要访问这个数据的地址然后通过地址找到接下来的数据。顺序表的创建我们这样写就写死了我们利用一个typedef来灵活书写数据的类型后面我们利用SLTDatetype就可以代替int之后我们要修改数据类型只需要改typedef后面的int我们先写一个单链表的打印函数单链表也是可以打印的只不过我们打印出来的是空的我们先在主函数创建一个结构体那么我们的打印函数就可以设计成利用一个while循环来就行多次打印如果phead为空指针我们就不打印如果单链表为空我们就打印一个空指针数据的添加有头加尾加在某个位置加数据的删除有头删尾删删某个位置数据数据的头加我们插入数据前需要申请空间利用malloc申请一个结构体大小的空间申请后我们将数据赋给申请节点的data将里面的指针暂时置空如果后面有数据再连接起来我们不确定后面是否还有数据所以我们将node-next的值与传入的函数相连接我们链表的头就等于我们头插数据申请的地址我们为什么要使用二级指针进行操作我们知道形参是实参的临时拷贝如果改变里面的数据就需要传它的地址直接对地址里面的元素进行操作。上面的也是一样我们传结构体的地址然后我们利用二级指针进行接受这样我们就可以修改结构体里面的内容我们头插一下数据看看尾插一个数据尾插数据怎么做到的我们也需要分类谈论如果是一个空链表我们直接将node与plist连接就好了我们尾插数据的时候也需要利用malloc申请空间然后你就会发现部分的代码与头插的相识就是申请空间那么我们后续可以专门封装一个申请空间的函数增加程序的可读性第一步申请空间第二步判断是否为空链表空链表直接插入第三步找到原链表的最后一个地址将最后的地址与新申请的连接上我们如何在特殊位置插入数据呢比如我们在pos位置后面插入数据我们怎么操作从图中看出我们将新申请的节点给pos-next我们给pos-next之前我们需要将pos-next的地址存起来因为pos-next存的是原pos后面的地址使用我们可以先将pos-next给新申请节点的next然后再将新节点的地址给pos-next我们在pos之后插入数据之后我们需要知道pos的位置我们创建一个函数专门来查找指针的地址在pos后面插入数据函数我们来用一用那么在pos的前面怎么插入数据其实方法可以与在pos后面插入一样只要将在pos后面插入的数据与pos处的数据交换就好了下面我们来进行删除操作怎么删除首元素呢我们进行删除前需要判断链表是否为空空链表就无法删除了我们头删前将首地址记录完成删除后我们将地址释放首先我们是将第二个元素的地址给头然后释放首地址数据的尾删又是怎么操作的首先判断是否是空链表如果只有一个元素直接删除如果有多个元素我们先找到它的尾再进行删除这种方法可以不需要记录我们间接的记录了地址释放置空就好了如何删除pos之后的元素第一步寻找pos的位置第二步删除画图在删除pos前的元素操作大同小异