梦魂断江南 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 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题