链表的基本操作

#include <iostream>
typedef  int ElemType ;
using namespace std;
typedef struct LNode{
    ElemType data;
    struct LNode *next;
}LNode,*LinkList;

//头插法创建表 
void CreatList1(LinkList &L){
    L=new LNode;
    L->next=NULL;
    int x;
    while(cin>>x){
        LNode *s=new LNode;
        s->data=x;
        s->next=L->next;
        L->next=s;
    }   
}
//尾插法创建表 
LinkList CreatList2(LinkList &L){
    L=new LNode;
    L->next=NULL;
    LNode *r=L;
    int x;
    while(cin>>x){
        LNode *s=new LNode;
        s->data=x;
        s->next=NULL;
        r->next=s;
        r=s;
    }
    
    r->next=NULL;
    return L;   
}
LNode *GetElem(LinkList &L,int i) {
    LNode *p=L->next;
    int k=1;
    while(k!=i)
    {
        p=p->next;
        k++;
    }
    return p;
}
LNode *ListDelete(LinkList &L,int k){
    LNode *q=L->next;
    LNode *p=L->next;
    int i=0;
    while(i<k-1){
        q=p;
        p=p->next;
        i++;
    }
    q->next=p->next;
    return p;
    delete(p);
    
    
    
}
void show(LinkList L){
    LNode *p=L->next;
    while(p->next!=NULL)
    {
        cout<<p->data;
        p=p->next;
    }
    cout<<p->data<<endl;
}
int main(){
    LinkList L;
//  CreatList1(L);
//  

//  show(L);
    CreatList2(L);
    show(L);
    LNode *p=GetElem(L,3);
    cout<<p->data<<endl;
    LNode *e=ListDelete(L,3);
    show(L);
    cout<<e->data<<endl;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容