栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++单链表基本操作初始化、创建、增、删、查等

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++单链表基本操作初始化、创建、增、删、查等

#include
#include
#define ERROR 0 
#define OK 1
typedef int ElemType;
using namespace std;
typedef struct LNode
{
    ElemType data;
    struct LNode* next;
}LNode,*LinkList;
int InitList(LinkList &L)
{
    L=new LNode;//或L=(LinkList)malloc(sizeod(LNode)); 
    L->next=NULL;
    return OK;
}
int DestroyList(LinkList &L)
{
    LinkList p;
    while(L)
    {
        p=L;
        L=L->next;
        delete p;//free(p);
    }
    return OK;
}
int ClearList(LinkList &L)
{
    LinkList p,q;
    p=L->next;
    while(p)
    {
        q=p->next;
        delete p;//free(p);
        p=q;
    }
    L->next=NULL;
    return OK;
}
int ListLength(LinkList L)
{
    LinkList p;
    int i=1;
    p=L->next;
    while(p){
        p=p->next;
        i++;
    }
    return i;
}
ElemType GetElem(LinkList L,int i)
{
    int n;
    LinkList p;
    p=L->next;
    for(n=1;nnext;
    }
    return p->data;    
}
int LocateList(LinkList L,ElemType e)
{
    LinkList p;
    int i=1;
    p=L->next;
    while(p&&p->data!=e){
        p=p->next;
        i++;
    }
    if(p)return i;    
    else return 0;//没找到 
}
int ListInsert(LinkList &L,int i,ElemType e)//在第i个结点前插入一个结点 
{
    int n;
    LinkList p,s;
    p=L->next;
    for(n=1;nnext;
    }
    if(!p)return ERROR;//i大于表长 
    s=new LNode;s->data=e;    
    s->next=p->next;
    p->next=s;
    return OK;
}
int DeleteList(LinkList &L,int i,ElemType &e)//删除第i个结点 
{
    int n;
    LinkList p,q;
    p=L->next;
    for(n=1;nnext;
    }
    q=p->next;
    if(!q)return ERROR;//i大于表长 
    e=q->data;
    p->next=q->next;
    delete q;
    return OK;    
}

int CreateList(LinkList &L,int n)//尾插法 
{
    int i;
    LinkList p,r;
    r=L;
    for(i=1;i<=n;i++)
    {
        p=new LNode;
        cin>>p->data;//scanf(&p->data);
        p->next=NULL;
        r->next=p;
        r=p;
    }
    return OK;
}
void PrintList(LinkList L)
{
    LinkList p;
    p=L->next;
    while(p){
        cout<data<<" ";
        p=p->next;
    }
}
int main()
{
    int n;
    LinkList L;
    InitList(L);
    cout<<"该单链表有几个结点?"<>n;
    cout<<"请依次输入结点数据:"; 
    CreateList(L,n);
    PrintList(L);
    
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012550.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号