标题:请问大家单链表按结点的前插操作,带头结点的,传入头结点的方法,这个代码 ...
只看楼主
Gloria_zhang
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2020-10-29
结帖率:71.43%
已结贴  问题点数:10 回复次数:2 
请问大家单链表按结点的前插操作,带头结点的,传入头结点的方法,这个代码哪里错了?
程序代码:
bool InsertPriorNodeTwo(LinkList &L,LNode *p,ElemType x){
    if(p==NULL) return false;
    LNode *s=(LNode *)malloc(sizeof(LNode));
    if(s==NULL) return false;
    s=L->next;
    while(s!=NULL)
        if(s!=(p-1)) s=s->next;
    LNode *q=(LNode *)malloc(sizeof(LNode));
    q=p-1;
    s->data=x;
    s->next=q->next;
    q->next=s; 
    return true;


求大神指教,本人新手小白
搜索更多相关主题的帖子: 代码 next return 结点 单链表 
2022-01-16 11:19
Gloria_zhang
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2020-10-29
得分:0 
我的思路就是传入头结点然后遍历找到p结点前面的一个结点。然后将s插到p前面一个结点的后面。实现p结点前插操作,但是代码我不太会写,求大神指教。
2022-01-16 11:21
diycai
Rank: 8Rank: 8
等 级:贵宾
威 望:19
帖 子:147
专家分:895
注 册:2021-5-18
得分:10 
程序代码:
bool InsertPriorNodeTwo(LinkList &L,LNode *p,ElemType x){
    if(p==NULL) return false;
    LNode *s=(LNode *)malloc(sizeof(LNode));//申请待插入结构体空间
    if(s==NULL) return false;
    s=L->next;//申请的空间被你遗弃了,再没有指针指向你申请的空间了
    while(s!=NULL)
        if(s!=(p-1)) s=s->next;//p-1又是什么谜之操作,难道你的链表结构是数组形式的吗
    LNode *q=(LNode *)malloc(sizeof(LNode));
    q=p-1;//q又白白申请了被遗弃的空间
    s->data=x;//s应该是一个空指针,你给他赋值。。。
    s->next=q->next;//回炉重学吧,把指针的章节掌握了再来写链表的代码
    q->next=s; 
    return true;
2022-01-18 11:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-508157-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.102244 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved