zoukankan      html  css  js  c++  java
  • 线性表的各种操作

    #include"stdio.h"
    #define ElemType int
    #define MAX 10
    typedef struct
    {
        ElemType data[MAX];
        int last;
    }List;
    int search(int i,List list1)
    {
        List list=list1;
        if(i>list.last)
        {
            printf("越界。查找失败。
    ");
            return -100;
        }
        //printf("查找成功,list.data[%d]位置的值是%d
    ",i,list.data[i]);
        return list.data[i];
    }
    int insert(List *list1,int i,int a)
    {
        int j=0;
        List *list=list1;
        if(i>list->last)
        {
            printf("插入位置不合法
    ");
            return -100;//FAILED
        }
        if(i==list->last)
        {
            list->last++;
            list->data[list->last]=a;
            return 100;//SUCCESS
        }
        list->last++;
        for(j=list->last;j>i;j--)
        {
            list->data[j]=list->data[j-1];
        }
        list->data[i]=a;
        return 100;//SUCCESS
    }
    int deleteValue(List *list1,int i)
    {
        List *list=list1;
        if(i>list->last)
        {
            printf("越界!!!
    ");
            return -100;
        }
        for(int j=i;j<list->last;j++)
        {
            list->data[j]=list->data[j+1];
        }
        list->last--;
        return 0;
    }
    int sum(List *list)
    {
        int s=0;
        if(list->last==0)
            return 0;
        for(int i=0;i<list->last;i++)
        {
            s=s+(list->data[i]);
            //i++;
        }
        return s;
    }
    void main()
    {
        List list;
        list.last=0;
        int i=0,j=0,a;
        printf("输入-100结束。
    ");
        scanf("%d",&a);
        while(a!=-100)
        {
            list.data[list.last]=a;
            list.last++;
            if(list.last==MAX)
            {
                printf("已经输入了%d个元素
    ",MAX);
                break;
            }
            scanf("%d",&a);
        }
          
        //list.data[1]=1;
        for(j=0;j<list.last;j++)
            printf("%d
    ",list.data[j]);
        printf("请输入要查找的位置:");
        scanf("%d",&i);
        if(search(i,list)==-100)
            printf("查找失败!!!
    ");//查找
        else
            printf("要查找的值是%d
    ",search(i,list));
        printf("请输入插入的位置和插入的数值:");
        scanf("%d%d",&i,&a);
        int result=insert(&list,i,a);
        if(result==-100)
            printf("插入失败!!!
    ");
        else
        {
            printf("插入之后的结果:
    ");
            for(j=0;j<list.last;j++)
                printf("%d
    ",list.data[j]);
        }
        printf("请输入要删除的位置:");
        scanf("%d",&a);
        result=deleteValue(&list,a);
        if(result==-100)
            ;//
        else
        {
            printf("删除之后的结果:
    ");
            for(j=0;j<list.last;j++)
                printf("%d
    ",list.data[j]);
        }
        printf("总和:%d
    ",sum(&list));
    }


    本文出自 “阿凡达” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/1306501

  • 相关阅读:
    【转】 Shiro 核心功能案例讲解 基于SpringBoot 有源码
    【转】 SpringData 基于SpringBoot快速入门
    【转】 Dubbo整合SpringBoot
    【转】 SpringBoot war包部署到Tomcat服务器
    【转】 SpringBoot使用Redis缓存
    【转】 SpringBoot统一异常处理
    【转】 SpringBoot创建定时任务
    【转】 SpringBoot 多环境配置
    js小数运算出现误差
    vue中组件的data为什么是一个函数
  • 原文地址:https://www.cnblogs.com/umgsai/p/3908105.html
Copyright © 2011-2022 走看看