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

Leap Day5——数据结构与算法 线性表基础练习题

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

Leap Day5——数据结构与算法 线性表基础练习题

目录

 1、顺序表

 1.1  存储定义

1.2  构造顺序表

1.3  静态初始化顺序表

1.4  顺序表的元素输出

1.5  顺序表的 插入

1.6  顺序表的删除

1.7  顺序表的取值

1.8  顺序表的查找

2、单链表 

2.1  单链表的存储定义

 2.2  头插法创建单链表

 2.3  单链表的插入

2.4  单链表的删除

 2.5  单链表的取值

 2.6  单链表的查找


 1、顺序表

 1.1  存储定义

顺序表的存储定义 

typedef struct{
    int *elem;
    int length;
}SqList;

1.2  构造顺序表

顺序表的初始化,构造一个空的顺序表 

void InitList(SqList &L){
    L.elem = new int[MAXSIZE];
    L.length = 0;
} 

1.3  静态初始化顺序表

从键盘上依次输入21、18、30、75、42、56,创建顺序表。

void InputList(SqList &L,int n){
    int i;
    for(i=0;i 

1.4  顺序表的元素输出

输出顺序表中的各元素值。

void OutputList(SqList &L){
    int i;
    for(i=0;i 

1.5  顺序表的 插入

分别在顺序表的第3个位置和第9个位置插入67和10,给出插入成功或失败的信息,并输出顺序表中的各元素值。

Status ListInsert (SqList &L,int i,int e){
    if((i<1)||(i>L.length+1))    return ERROR;
    if(L.length==MAXSIZE)    return ERROR;
    for(int j=L.length-1;j>i-1;j--)
        L.elem[j+1]=L.elem[j];
    L.elem[i-1]=e;
    ++L.length;
    return OK;
}

1.6  顺序表的删除

删除顺序表中的第6个数据元素和第8个数据元素,给出删除成功或失败的信息,并输出单链表中的各元素值。

Status ListDelete(SqList &L,int i){
    if((i<1)||(i>L.length))    return ERROR;
    for(int j=i;j 

1.7  顺序表的取值

取顺序表中的第5个数据元素和第7个数据元素。

Status GetElem(SqList L,int i,int e){
    if(i<1||i>L.length)    return ERROR;
    e = L,elem[i-1];
    return OK;
} 

1.8  顺序表的查找

查找35,42是否在顺序表中,查找成功返回其位置信息,否则返回0。

Status LocatElem(SqList L,int e){
    for(int i=0;i 

2、单链表 

2.1  单链表的存储定义

单链表的存储定义

typedef struct LNode{
    ElemType data;
    struct LNode *next;
}LNOde,*linkList;

 2.2  头插法创建单链表

从键盘上依次输入21、18、30、75、42、56,逆序创建单链表,并输出单链表中的各元素值。

void GreateList(linkList &L,int n){
    L=(linkList)malloc(sizeof(LNode));
    //L = new LNode;
    L->next = NULL;
    for(i=n;i>0;i--){
        p = new LNode
        scanf("%d",&p->data);
        p->next = L->next;
        L->next = p;
    }
} //GreateList

 2.3  单链表的插入

分别在单链表的第3个位置和第9个位置插入67和10,给出插入成功或失败的信息,并输出单链表中的各元素值。

Status ListInsert(linkList &L,int i,ElemType e){
    p=L;
    j=0;
    while(p&&jnext;
        ++j;
    }
    if(!p||j>i-1)
        return ERROR;
    s = new LNode;
    s->data = e;
    s->next = p->next;
    p->next = s;
    return OK;
}//linkList

2.4  单链表的删除

删除单链表中的第6个数据元素和第8个数据元素,给出删除成功或失败的信息,并输出单链表中的各元素值。(带头结点) 

Status ListDelete(linkList &L,int i,ElemType &e){
    p=L;
    j=0;
    while(p->next&&jnext;
        ++j;
    }
    if(!p||j>i-1)
        return ERROR;
    q = p->next;
    p->next = q->next;
    e = q->data;
    free(q);
    return OK;
} 

 2.5  单链表的取值

取单链表中的第5个数据元素和第7个数据元素(带头结点)

Status GetElem(linkList L,int i,ElemType &e){
    p = L->next;
    j=0;
    while(p&&j-1){
        p=p->next;
        ++j;
    }
    if(!p||j>i)    return ERROR;
    else    e=p->data;
    return OK; 
}//GetElem

 2.6  单链表的查找

在单链表中查找值为30和90的数据元素。

Statue Locate(linklist L,int e){
    p = L->next;
    j=0;
    while(p&&p->data!=e){
        p=p->next;
        ++j;
    } 
    if(p)
        return j; 
    else
        return ERROR;
} //LocateElem L

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

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

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