zoukankan      html  css  js  c++  java
  • 线性表的顺序列表的定义、初始化等操作

    #include <stdio.h>
    #include <stdlib.h>
    #define OK 1
    #define ERR 0
    #define MAXSIZE 100
    //定义顺序存储结构

    typedef struct list{
    int elem[MAXSIZE];
    int last;
    }SeqList;

    //初始化线性表
    SeqList *InitList()
    {
    SeqList *L;
    L = (SeqList *)malloc(sizeof(SeqList));
    L->last = 0;
    return L;
    }

    //查找操作,按内容查找
    int Locate(SeqList *L,int e)
    {
    int i=0;
    for (i;i<L->last-1;i++)
    {
    if (L->elem[i]==e)
    {
    return i+1;
    }
    }
    return -1;
    }

    //插入操作.在表的第i个位置前插入一个新元素

    int InsList(SeqList *L,int i,int e)
    {
    int k;
    if (i<1||i>L->last+1)
    {
    printf("插入位置不合法!");
    return ERR;
    }
    if (L->last>=MAXSIZE)
    {
    printf("表已满,无法插入!");
    return ERR;
    }

    for (k=L->last-1;k>=i;k--)
    {
    L->elem[k+1]=L->elem[k];
    }
    L->elem[i-1]=e;
    L->last++;
    return OK;
    }

    //删除表的第i个元素,并且用指针e返回其值
    int DelList(SeqList *L,int i,int *e)
    {
    int k;
    if (i<1||i>L->last)
    {
    printf("删除位置不合法!");
    return ERR;
    }
    *e=L->elem[i-1];
    for (k=i-1;k<L->last;k++)
    {
    L->elem[k]=L->elem[k+1];
    }
    L->last--;
    return OK;
    }
    //线性表的输出
    void print_seqList(SeqList *L)
    {
    int j;
    for (j=1;j<=L->last;j++)
    {
    printf("%d ",L->elem[j-1]);
    if (j%5==0)
    {
    printf(" ");
    }
    }
    }
    int main()
    {

    SeqList *L;
    L=InitList();
    int a,j,locate,e;
    for (j=1;j<10;j++)
    {
    printf("请输入要插入的数字: ");
    scanf("%d",&a);
    InsList(L,a,j);
    }
    printf(" ");
    printf("————————————————————: ");
    printf("————————————————————: ");
    printf("插入后的列表为: ");
    print_seqList(L);
    printf(" ");
    printf("————————————————————: ");
    printf("————————————————————: ");
    printf("查找元素5是否存在,显示下标: ");
    locate = Locate(L,5);
    printf("%d ",locate);
    printf("————————————————————: ");
    printf("————————————————————: ");
    printf("删除第7个元素,返回被删除的元素: ");
    DelList(L,7,&e);
    printf("被删除的元素是:%d ",e);
    return 0;
    }

  • 相关阅读:
    ElasticSearch(二) Transport Client Connection By Domain
    ElasticSearch(一) Transport Client
    如何把Spring Boot打包成war
    Lucene Query种类
    JAVA Http Basic auth
    Java 多线程系列2——多线程的生命周期及生产消费者模型
    Java 多线程系列1——浅聊JAVA 线程池的一般用法
    JS 实现右下角弹窗
    JS 实现兼容IE图片向左或向右翻转
    Vue Input输入框两侧加减框内数字组件
  • 原文地址:https://www.cnblogs.com/pilihaotian/p/4830432.html
Copyright © 2011-2022 走看看