zoukankan      html  css  js  c++  java
  • C,顺序表,简单的元素处理

    #include<stdio.h>
    #include<stdlib.h>
    #define maxSize 30
    typedef int DataType;
    typedef struct {                            //包含结构体 
        DataType data[maxSize];
        int n;
    }SeqList; 
        
    int main(){
        SeqList L;
        int i,k,l,n1,n2,x,j=0;
        printf("请输入数据长度:"); 
        scanf("%d",&L.n);
        for(i=0;i<L.n;i++){                    //依次输入data
            printf("请输入第%d个数据:",i+1);
            scanf("%d",&L.data[i]);
        } 
        printf("包含数据:");
        for(i=0;i<L.n;i++){                   //输出data 
            printf("%d  ",L.data[i]);
        }
        printf("
    ");
        
        printf("顺序表L的长度=%d
    ",L.n);     // 求线性表长度运算
        
        
        enter: 
        printf("请输入逻辑顺序:");
        scanf("%d",&n2);        
        if(n2<0||n2>L.n){                             //直到输入正确 
            printf("不在数据范围之内");         
        	goto enter;
    	}
    
    
        printf("第%d个位置的元素是%d
    ",n2,L.data[n2-1]);
                                                         
        printf("请输入要查找的元素:");
        scanf("%d",&n1);                      //获得n1
        for(i=0;i<L.n;i++){                   //依次比较n1在与data中的数 
            if(L.data[i]==n1){
                printf("元素%d是第%d个元素
    ",n1,i+1);
                j++;                          
            }       
        }
        if(j==0){
            printf("n1在data中不从在
    "); 
        }
        insert:
        printf("要在第几个数据插入:");
        scanf("%d",&k);
        if(k<1||k>L.n) {                        //直到输入正确 
            printf("不在数据范围内
    ");
            goto insert;  
        }
        printf("要插入的元素"); 
        scanf("%d",&x);
        L.n++;                                   //数据长度+1 
        for(i=L.n-1;i>=0;i--){                   //插入数据x 
            L.data[i+1]=L.data[i];
            if((i+1)==k){
                L.data[i]=x;
                break;
            }
        }
        for(i=0;i<L.n;i++){                   //输出处理后的结果 
            printf("%d  ",L.data[i]);
        }
        del:
        printf("要删除第几个数据:");
        scanf("%d",&l);
        if(l<1||l>L.n) {
            printf("不在数据范围内
    ");
            goto del;  
        }
        for(i=l;i<L.n;i++){                     //删除第l个数据 
            L.data[i-1]=L.data[i];
        }
        L.n--;                             //数据长度-1
        for(i=0;i<L.n;i++){                  //输出处理后的结果 
            printf("%d  ",L.data[i]);
        }   
        return 0;
    }
    

  • 相关阅读:
    Java中的匿名对象
    Java决策制定
    「干货总结」程序员必知必会的十大排序算法
    阿里开发手册之ArrayList正确操作方式
    Java中this关键字的使用
    Java封装的概念详解
    【C++】数组的最大子数组
    第二章:分治I
    【C++】归并排序
    第一章:算法绪论
  • 原文地址:https://www.cnblogs.com/BKKITO/p/10652412.html
Copyright © 2011-2022 走看看