ghblk 2023-04-11 12:13 采纳率: 85.7%
浏览 38
已结题

在牛客网上写题遇到的问题

在牛客网上写题目遇到的问题

img

img


img

#include <stdio.h>
#include <malloc.h>
typedef struct linkList
{
    int data;
    struct linkList * next;
    struct linkList * prior;
}LNode,*LinkList;
LNode* traverse(LinkList L,int x)
{
    LNode* p=L;
    while(p->data!=x&&p->next!=NULL)
    {
        p=p->next;
    }
    return p;
}
void insert(LinkList L,int x,int y)
{
    LNode* p;
    LNode* q;
    q=(LNode*)malloc(sizeof(LNode));
    q->next=NULL;
    q->prior=NULL;
    p=traverse(L,x);
    if(p->next==NULL&&p->data!=x)
    {
        q->next=NULL;
        q->data=y;
        q->prior=p;
        p->next=q;
    }
    else
    {
        q->next=p;
        p->prior->next=q;
        q->prior=p->prior;
        p->prior=q;
        q->data=y;
    }
}
void delete(LinkList L, int x)
{
    LNode * p;
    p=traverse(L,x); 
    if(p->next==NULL&&p->data!=x) 
        return;
    else if(p->next==NULL)
    {
        p->prior->next=p->next;
        free(p);
    }
    else 
    { 
        p->prior->next=p->next;
        p->next->prior=p->prior; 
        free(p); 
    } 
}
int main() 
{
    int n,x,y;
    char oper[10];
    LinkList L=(LNode*)malloc(sizeof(LNode));
    L->next=NULL;
    L->prior=NULL;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%s",oper);
        if(oper[0]=='i')
        {
            scanf("%d%d",&x,&y);
            insert(L,x,y);
        }
        else
        {
            scanf("%d",&x);
            delete(L,x);
        }
    }
    LNode* p=L;
    if(L->next==NULL)
        printf("NULL");
    while(p->next!=NULL)
    {
        p=p->next;
        printf("%d ",p->data);
    }
    return 0;
}

展开全部

  • 写回答

1条回答 默认 最新

  • 风浪越大%鱼越贵 2023-04-12 01:42
    关注

    似乎递归进入死循环了吧,导致内存溢出,插入少量的数据,debug跟踪一下看看情况

    评论
    ghblk 2023-04-12 02:51

    式例的数据过了,小数据没发现问题

    回复
    编辑
    预览

    报告相同问题?

    问题事件

    • 已结题 (查看结题原因) 4月17日
    • 修改了问题 4月11日
    • 创建了问题 4月11日
    手机看
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回
    顶部