qq_38007994
Hello 典
采纳率100%
2017-04-11 08:55 浏览 1.2k
已采纳

c数据结构单链表的操作

Status ListDelete(LinkList *L,int i,ElmeType *e)
{
int j;
LinkList p;

p = *L;
j = 1;
while(p&&j<i)
{
    p = p->next;//p为第i个位置的next元素;
    j++;
}
if(!p&&j>i-1) return ERROR;
q = p->next;
free(q);   
p->next = p->next->next;//使p为第i+1位置的next元素;

return OK;

}
你们p既然已经为i+1的next,那为什么要释放第i个节点的内存空间,可以不用free释放节点吗?我感觉不释放的话对链表没有影响啊。
类似的增加新节点用malloc(sizeof(Node))可以不用malloc吗?他可以自动开辟一块内存空间吗?讲的详细点谢谢。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答 默认 最新

  • 已采纳
    chenl_ chenl_ 2017-04-11 10:38

    对链表没什么影响,可是他还是会占着内存啊,用的多了就会内存溢出啊,

    点赞 1 评论 复制链接分享
  • qq_38007994 Hello 典 2017-04-11 09:33

    没人理我吗?哪怕是随便说一下

    点赞 评论 复制链接分享
  • chenl_ chenl_ 2017-04-11 10:39

    q你在哪声明的我怎么没看见?

    点赞 评论 复制链接分享

相关推荐