希天田 2022-03-09 19:40
浏览 17
已结题

删除字符串的奇数位,到第4位时出错

目的是删除(1234567)中的奇数位字符
采用双链表储存,之后按位删除 Insert()头插法插入 Delet()删除
show()输出 ; finded()求链表长度;
删除第4个结点时出错

#include<stdio.h>
#include<stdlib.h>
char *a="*abcdefghijklmnopqrs";
char *a1="*1234567";
typedef struct LNode{
    LNode*next,*front;
    char data;
}LNode,*LinkList;

void Insert(LinkList &L,char x){
    LNode*q=(LNode*)malloc(sizeof(LNode));
    q->data=x;
    q->next=L->next;
    if(L->next!=NULL) L->next->front=q;
    q->front=L;
    L->next=q;
} 

void Init(LinkList &L){
    L=(LNode*)malloc(sizeof(LNode));
    L->next=NULL;
    L->front=NULL;
    for(int i=1;i<=1;i++){
        for(int j=7;j>0;j--){
            Insert(L,a1[j]);
        }
    }
}

int findend(LinkList &L){
    int cnt=0;
    for(LNode*q=L->next;q!=NULL;q=q->next){
        cnt++;
    }
    return cnt;
}


void Show(LinkList &L){
    
    for(LNode*q=L->next;q!=NULL;q=q->next){
        printf("%c ",q->data);
    }
    printf("\n");
}

void Delet(LinkList &L, int x){
    LNode*p;
    int cnt=1;
    for(p=L->next;cnt<x;cnt++,p=p->next); 
    p->next->front=p->front;
    p->front->next=p->next;
    free(p);
} 

void Yun(LinkList &L){
    while(1){
        for(int i=1;i<=4;i++){ //这里删除到第4个就无法运行了 
            Delet(L,i);
            Show(L);
        }
        Show(L); 
    }
}



int main(){
    LinkList L;
    Init(L);
    Show(L);
    Yun(L);

    return 0;
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 3月17日
    • 创建了问题 3月9日

    悬赏问题

    • ¥15 lvgl v8.2定时器提前到来
    • ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
    • ¥15 cam_lidar_calibration报错
    • ¥15 拓扑学,凸集,紧集。。
    • ¥15 如何扩大AIS数据容量
    • ¥15 单纯型python实现编译报错
    • ¥15 c++2013读写oracle
    • ¥15 c++ gmssl sm2验签demo
    • ¥15 关于模的完全剩余系(关键词-数学方法)
    • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助