#include"stdio.h"
#include"stdlib.h"

#define MAXSIZE 10
#define OK 1

#define YES 1
#define NO 0

struct Sqlist
{
    int a[MAXSIZE];
    int length;
 };
 
void listlength(Sqlist *list)
{
    printf("线性表得长度:%d\n",list->length);
}

int emptylist(Sqlist list)    //判断线性表是否为空;
{
    if(list.length==0)
    {
        return YES;
    }
    else
    {
        return NO;
    }
 }
 
int initlist(Sqlist *list)
{
    list->length=0;
    return OK;
}
 
void listinsert(Sqlist *list,int num,int n)
{
    int i;
    for(i=MAXSIZE-1;i>=n;i--)
    {
        list->a[i]=list->a[i-1];
    }
    list->a[n-1]=num;
    list->length ++;
}

void printlist(Sqlist list)
{
    printf("数据:");
    for(int i=0;i<list.length;i++)
    {
        printf("%3d",list.a[i]);
    }
    
}
 
void clearlist(Sqlist *list)
{
    list->length=0;
}

int deldata(Sqlist *list,int num,int sign)
{
    int i;

for(i=0;i<list->length;i++)
    {    
        
        if(list->a[i]==num)
        {    
            for(int k=i;k<list->length;k++)
            {
                list->a[k]=list->a[k+1];
            }
            sign=1;
        }
    }
    if(sign==1)
    {
        list->length --;
    }
    return sign;
}

void locateElem(Sqlist list,int num)
{
    int i,sign,j;
    for(i=0;i<list.length;i++)
    {
        if(num==list.a[i])
        {
            sign=1;
            j=i+1;
            break;
        }
        else
        {
            sign=0;
        }
        
    }
    if(sign==1)
    {
        printf("%d存在,在第%d位",num,j);
    }
    else
    {
        printf("%d不存在",num);
    }
}
 
 
int main()
{
    struct Sqlist list;
    int i;
    i=initlist(&list);  //初始化性表
    
    i=emptylist(list);     //判断线性表是否为空
    if(i=1)
    {
        printf("线 性 表 为 空\n");
    }
    else
    {
        printf("线 性 表 不 为 空\n");
    }
    
    for(int j=1;j<=5;j++)
    {
        listinsert(&list,j,1);
    }
    listlength(&list);   //线性表的长度

printlist(list);   //显示表里得数据项;
    printf("\n");
    
    clearlist(&list);
    printf("清空线性表中:\n");
    i=emptylist(list);
    if(i=1)
    {
        printf("清空成功\n");
    }
    else
    {
        printf("ERROR\n");
    }
    
    printlist(list);
    printf("\n");
    printf("加入新的数据项:\n");
    for(int j=1;j<=10;j++)
    {
        listinsert(&list,j,1);
    }
    printlist(list);
    printf("\n");
    listlength(&list);
    
    
    //删除数据
    int sign=0,num;
    printf("删除的数据:");
    scanf("%d",&num);
    getchar();
    
    sign=deldata(&list,num,sign);
    
    if(sign==0)
    {
        printf("删除得元素不存在");
    }
    else
    {
        printf("删除后:");
        printlist(list);
    }
    printf("\n");
    
    
    //查找某一元素是否存在
    printf("输入查找得元素:");
    scanf("%d",&num);
    getchar();
    locateElem(list,num);
    
    
}

线性表操作的基本应用相关推荐

  1. 【算法与数据结构实战】线性表操作-实现A并B,结果放入A中

    //数据结构与算法基础题1:线性表操作,实现A并B,结果放入A中#include "stdafx.h" #include <iostream> #include < ...

  2. 线性表操作(线性表)

    Description (线性表)请你定义一个线性表,可以对表进行"在某个位置之前插入一个元素"."删除某个位置的元素"."清除所有元素". ...

  3. 《大话数据结构》读书笔记-线性表

    写在前面:本文仅供个人学习使用.<大话数据结构>通俗易懂,适合整体做笔记输出,构建体系.并且文中很多图片来源于该书. 文章目录 3.2 线性表的定义 3.3 线性表的抽象数据类型 3.4 ...

  4. c语言线性表库函数大全,数据结构(C语言版)-线性表习题详解

    <数据结构(C语言版)-线性表习题详解>由会员分享,可在线阅读,更多相关<数据结构(C语言版)-线性表习题详解(23页珍藏版)>请在人人文库网上搜索. 1.数 据 结 构 ,线 ...

  5. [数据结构与算法] (顺序)线性表简单demo程序

    1 /******************************************************* 2 * @: Project: (顺序)线性表数据结构演示 3 * @: File ...

  6. 【数据结构与算法】——第二章:线性表

    文章目录 1.线性表 1.1 基本概念 1.2 线性表基本操作 2.线性表的顺序存储 2.1 线性表顺序存储的插入与删除 3.线性表的链式存储 3.1 单链表 3.2 静态链表 3.3 循环链表 3. ...

  7. 数据结构之线性表(手绘版)

    目录 一,写在前面 二,线性表的定义 三,线性表的抽象数据类型 四,线性表的顺序存储结构 4.1,顺序存储的定义 4.2,顺序存储方式 4.3,数据长度与线性长度的区别 4.4,地址计算方法 五,顺序 ...

  8. 大话数据结构读书笔记系列(三)线性表

    2019独角兽企业重金招聘Python工程师标准>>> 3.1 开场白 各位同学,大家好.今天我们要开始学习数据结构中最常用和最简单的一种结构,在介绍它之前先讲个例子. 我经常下午去 ...

  9. C语言——线性表 (数据结构)

    对线性表操作的主体功能实现 #include<stdio.h> #include<malloc.h> #include<stdlib.h>//函数返回状态代码 #d ...

最新文章

  1. JQuery弹出窗口小插件ColorBox
  2. c# list集合根据某个字段去重_完美解决c# distinct不好用的问题
  3. 容器化实践金融业案例一
  4. [云炬创业基础笔记]第七张创业团队测试5
  5. 计算机软件技能高考好考么,湖北技能高考:上不了本科,优先考虑这4所一档高职...
  6. mysql在linux下修改存储路径
  7. 设计师学习HTML/CSS之路-11
  8. 计算机应用基础 辅助教学系统,计算机应用基础课程辅助教学及智能测评系统使用手册——网络版.docx...
  9. DIV高度自适应方法汇总-----摘自网友
  10. java 1.8 or higher_NetBeans安装提示neatbeans cannot find java 1.8 or higher
  11. In App Purchases 入门
  12. ERP软件管理持续升级 抢占产业先机
  13. python+pygame 最强大脑联动归位游戏
  14. ubuntu18.04安装tftpd服务器
  15. pc端常用的屏幕分辨率
  16. 压缩JPG图片大小而且不失真
  17. Java小游戏象棋开发1-界面设计
  18. java bigdecimal 开方_JAVA BigDecimal使用牛顿迭代法计算平方根(开方)
  19. linux ps aux 命令解释
  20. 华为OD机试 - 模拟商场优惠打折

热门文章

  1. 前端学习(1837):前端面试题之变量提升
  2. 前端学习(1797):前端调试之css伪元素
  3. oracle之高级子查询2
  4. oracle之基本的过滤和排序数据
  5. 前端学习(1264):fetch响应结果
  6. db2存储结构换Oracle,DB2中实现Oracle的功能
  7. [资源]基于 Pytorch 的 TorchGAN开源了!
  8. 剑指offer--旋转数组的最小数字
  9. 小程序的wx.onAccelerometerChange
  10. python学习(十七) 扩展python