梦魂断江南 2019-11-01 11:38 采纳率: 85.7%
浏览 1903
已采纳

一、 创建一个字符单链表,实现对字符的插入、删除、查找、元素个数的统计等基本操作,要求为用户提供选择式菜单?

C语言 数据结构

一、 创建一个字符单链表,实现对字符的插入、删除、查找、元素个数的统计等基本操作,要求为用户提供选择式菜单。

  • 写回答

2条回答

  • dabocaiqq 2019-11-01 12:03
    关注

    #include
    typedef int ElemType;
    typedef struct lnode
    {
    ElemType data;
    struct lnode *next;
    }Lnode,*Linklist;

    void CreateList(Linklist &L,int n)
    {

    L=new Lnode;
    L->data=NULL;
    L->next=NULL;
    Linklist rear=L;//定义指向Lnode结构体指针rear,并指向L
    cout<<"请输入"< for (int i=0; i {
    Linklist s=new Lnode;
    cin>>s->data;
    rear->next=s;
    rear=s;

    }
    rear->next=NULL;
    

    }

    void Insert(Linklist &L,int i, ElemType x)
    {

    Linklist p=L;
    int j=0;

    while (j {
    p=p->next;
    j++;
    }
    if (!p) cout<<"位置不合理";//如果i-1已经超出链表的范围
    else
    { Linklist s=new Lnode;

    s->data=x;

    s->next=p->next;

    p->next=s;
    }
    }

    void Delete(Linklist &L,int i)
    { Linklist p=L;
    int j=0;

    while (j {
    p=p->next;
    j++;
    }
    if (p||p->next!=NULL) //因为删除的是后面的元素,所以首先判断p不为空及不指向最后一个元素
    { Linklist q=new Lnode;
    q=p->next->next;
    p->next=q; //直接连上第i+1元素就ok
    }
    else cout<<"位置不合理";
    }

    int Find(Linklist &L,int i)
    {
    Linklist p=L;
    int j=0;

    while (p&&j {
    p=p->next;
    j++;
    }
    if (!p) cout<<"Error";
    else cout<<"存在你要找的值为"< return p->data;

    }

    void Putout(Linklist &L)
    {
    Linklist p=L->next;
    if(!p) cout<<"没有数据存入";
    while(p!=NULL)
    {
    cout<data<<" ";
    p=p->next;
    }
    cout<<'\n';
    }

    void main()
    {
    Linklist K;
    int i,x,y;
    cout<<"请输入您要存储的元素个数:"<<'\n';
    cin>>i;
    CreateList(K,i);
    Putout(K);
    while(1)
    { cout<<"请输入您要进行的操作1插入2删除3查找4退出"<<'\n';
    cin>>i;

    if(i==1) 
    

    {
    cout<<"请输入你要插入的位置x和要插入的元素y:"<<'\n';
    cin>>x>>y;
    Insert(K,x,y);
    Putout(K);
    continue;
    }

    if(i==2)
    {
    cout<<"请输入你要删除的元素位置x:"<<'\n';
    cin>>x;
    Delete(K,x);
    Putout(K); 
    continue;
    }
    
    
    if(i==3)
    {cout<<"请输入你要查找的元素:"<<'\n';
     cin>>x; 
     Find(K,x); 
     Putout(K); 
     continue;}
    
    if(i==4) break;
    
    else 
    {cout<<"你的输入有误"<<'\n';
    continue;}
    

    }
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 MapReduce实现倒排索引失败
  • ¥15 luckysheet
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题