数据结构 - 顺序表

作者: 主教主

点击查看代码

include <stdio.h>
include <stdlib.h>
include <conio.h>
include <malloc.h>


define TURE    1
define false   0
define OK  1
define ERROR   0
define OVERFLOW    -2
define LIST_INIT_SIZE  100
define LISTINCREAMENT  10


typedef int Status;
typedef int ElemType;


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

Status InitList(SqList *L);
Status ListInsert(SqList *L,int i,ElemType e);
Status ListDelete(SqList *L,int i,ElemType *e);
void ListOutput(SqList L);
//void User_Choice(int Choice);
Status LocataElem(SqList,ElemType e);
//C = A∩B
SqList Intersection(SqList *LA,SqList *LB);

int main()
{
    SqList L;
    Status flag;
    int n,i,Choice;
    ElemType e;
    //初始化顺序表
    flag = InitList(&L);
    if(flag = OK)
    {
        printf("List init sucess!\n");
    }
    else
        printf("\n Please input %d elements:\n",n);


     printf("Choice:1,2,3,4,5,6....");\
     scanf("%d",&Choice);
     switch(Choice)
     {
         case 1://插入
             {
                 printf("input n:");
                 scanf("%d",n);
                 printf("\nPlease intput %d elements:\n");
                 for(i = 1;i<=n;i++)
                 {
                     scanf("%d",&e);
                     flag = ListInsert(&L,i,e);
                 }
             };break;
         case 2://输出
             {
                 printf("\n The elements of list are:\n");
                 ListOutput(L);
             } ;break;
         case 3://查找
             {
                 printf("\nIput the element to be queried:");
                 scanf("%d",&e);
                 i=0;
                 i=LocataElem(L,e);
                 printf("Its index is %d.",i);
             };break;
         case 4://删除
             {
                 printf("\n Input the index of element to be deleted:");
                 scanf("%d",&i);
                 flag = ListDelete(&L,i,&e);
                 printf("the deleted element is %d:\n",e);

             };break;
         case 5: ;break;
         case 6: ;break;

     }



    return 0;
}
//初始化为空的顺序表
Status InitList(SqList *L)
{
    L->elem = (ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
    if(!L->elem)
        exit(OVERFLOW);
    L->length = 0;
    L->listsize = LIST_INIT_SIZE;
}
Status ListInsert(SqList *L,int i,ElemType e)
{
    ElemType *newbase,*q,*p;
    if(i<1 || i>L->length+1)
        return ERROR;
    if(L->length>=L->listsize)
    {
        newbase = (ElemType*)realloc(L->elem,(L->listsize+LISTINCREAMENT)*sizeof(ElemType));
        if(newbase == NULL) exit(OVERFLOW);
        L->elem = newbase;
        L->listsize = L->listsize +LISTINCREAMENT;
    }

    q = &(L->elem[i-1]);
    for(p = &L->elem[L->length-1];p>=q;--p)
        *(p+1) = *p;
        *q = e;
        ++L->length;
        return OK;
}

void ListOutput(SqList L)
{
    int i;
    if(L.length == 0)
        printf("List is null!\n");
    else
    {
        for(i=0;i<L.length;i++)
            printf("%d",L.elem[i]);
        printf("\n");
    }
}
Status LocataElem(SqList L,ElemType e)
{
    int i = 0;
    while(i<=L.length-1 &&L.elem[i]!=e)
        i++;
    if(i<=L.length - 1)
        return i;
    else
        return -1;
}
Status ListDelete(SqList *L,int i,ElemType *e)
{
    ElemType *p,*q;
    if(i<1 || i>L->length) exit(ERROR);
    p = &L->elem[i-1];
     *e = *p;
    q = L->elem+L->length-1;
    for(++p;p<=q;p++)
    {
        *(p-1) = *p;
    }
    --L->length;
    return OK;
}
SqList Intersection(SqList *LA,SqList *LB)
{
    SqList LC;
    InitList(&LC);
    int i,e;
    for(i=0;i<LA->length;i++)
    {
        LC.elem[i] =LA.elem[i];
        LC->length++;
    }
    for()


}

原文创作:主教主

原文链接:https://www.cnblogs.com/zhujiaozhu/p/15319234.html

更多推荐

更多
  • Azure数据工程指南-二十四、数据治理的权限 创建 azure 预览帐户,探索 azure 预览,探索词汇表,浏览资产,以编程方式使用预览,摘要,管理凭证和访问,创建扫描, 许多组织需要建立数据治理流程、标准和方法,并且已经能够使用内部 SQL Server 工具(如 Master
    Apache CN

  • Azure数据工程指南-二十二、Synapse 分析工作区 创建 Synapse 分析工作区,使用 Spark 探索样本数据,用 SQL 查询数据,用 SQL 创建外部表,摘要, 微软 Azure 数据平台的众多新增功能已经围绕许多类似的产品及其在现代 Azure 数据平台中的用途产生了兴奋和困
    Apache CN

  • Azure数据工程指南-二十三、数据块中的机器学习 创建 MLflow 实验,安装 MLflow 库,创建笔记本,选择性测井,自动记录,摘要, 寻求利用机器学习(ML)和人工智能能力的组织和开发人员花费大量时间构建 ML 模型,并寻求一种方法来简化他们的机器学习开发生命周期,以跟踪实验,
    Apache CN

  • Azure数据工程指南-二十一、将 Apache Spark 的 GraphFrame API 用于图形分析 安装 JAR 库,加载新数据表,将数据加载到数据块笔记本中,用顶点和边构建一个图,查询图表,寻找有图案的图案,用 PageRank 发现重要性,探索入度和出度度量,摘要,进行广度优先搜索,查找连接的组件, 图形技术使用户能够以图形的形式
    Apache CN

  • Azure数据工程指南-20 二十、部署 SQL 数据库先决条件,创建 Visual Studio SQL 数据库项目,安装 Visual Studio GitHub 扩展,导入 AdventureWorks 数据库,连接到 GitHub Repo 源代码控制,将
    Apache CN

  • Azure数据工程指南-十九、部署数据工厂更改 先决条件,创建 DevOps 持续集成构建管道,创建 DevOps 持续部署发布渠道,验证部署的数据工厂资源,摘要,Azure PowerShell 任务停止触发器,ARM 模板部署任务,Azure PowerShell 任务启动触发器
    Apache CN

  • Azure数据工程指南-十八、用于 Cosmos DB 的 Azure Synapse 链接 创建一个 Azure Cosmos DB 帐户,启用 Azure Synapse 链接,创建一个 Cosmos DB 容器和数据库,将数据导入 Azure Cosmos DB,在 Azure Synapse Analytics 中创建
    Apache CN

  • Azure数据工程指南-十六、流分析异常检测 先决条件,创建流分析输入和输出,创建实时电源 BI 仪表板,监控实时电源 BI 流,摘要,创建 Azure 流分析作业,创建物联网中心,创建 Power BI 服务,下载设备模拟器,添加流输入,添加流输出,编写流分析查询,启动流分析作业
    Apache CN

  • Azure数据工程指南-十七、使用 Apache Spark 的实时物联网分析 先决条件,创建物联网中心,创建数据块集群,安装 Maven 库,创建笔记本并运行结构化流查询,摘要,配置笔记本连接,开始结构化流,启动物联网设备模拟器,显示实时流数据,创建 Spark SQL 表,将流写入增量表, 实时物联网分析、高级
    Apache CN

  • Azure数据工程指南-十五、DeltaLake 为什么是酸性 DeltaLake,先决条件,创建并插入 DeltaLake,更新 DeltaLake,从 DeltaLake 删除,浏览增量日志,摘要,插入,更新,删除, 在使用 Azure Data Lake Storage Gen2
    Apache CN

  • 近期文章

    更多
    文章目录

      推荐作者

      更多