• 线性表的顺序列表的定义、初始化等操作


    #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;
    }

  • 相关阅读:
    C++ Primer注意事项11_运算符重载_算术/关系运算符_下标运算符
    android最新的工具DateHelper
    ssh否password登陆server
    atitit.设计模式(2) -----查询方式/ command 总结
    采用Eclipse中间Maven构建Web项目错误(一)
    dm8148 jpeg编解码器测试
    C++ 结构体和类的区别
    C++ const
    C++中的inline函数
    C++ 模板类demo
  • 原文地址:https://www.cnblogs.com/pilihaotian/p/4830432.html
Copyright © 2020-2023  润新知