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

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

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;}
    

    }
    }

    点赞 评论
  • 君子黎 2019-11-01 11:47

    可以参考下这个博客,再修改写内容就可以
    https://blog.csdn.net/lixiaogang_theanswer/article/details/71566985

    点赞 评论

相关推荐 更多相似问题