zoukankan      html  css  js  c++  java
  • 静态顺序表的各种操作

    //
    //  main.c
    //  test1
    //
    //  Created by chen on 14-3-10.
    //  Copyright (c) 2014年 chen. All rights reserved.
    //
    
    #include "stdio.h"
    #include<stdlib.h>
    #define MaxSize 10      //静态表的最大值为10
    /*静态顺序表的各种操作*/
    
    /**   向顺序表中插入元素    */
    /**   参数Sqlist:表首地址    */
    /**   参数*len: 表的长度     */
    /**   参数i: 插入元素的位置 */
    /**   参数x:待插入的元素值  */
    void insertElem(int Sqlist[],int *len,int i,int x)//此处使用*len的作用就是使这个函数可以改变它的值。即:传入了地址!
    {
        int t;
        if(*len==MaxSize || i<1 || i>*len+1)
        {
            printf("This insert is illegal
    ");
            return;
        }                                      /*非法插入*/
        for(t=*len-1;t>=i-1;t--)
            Sqlist[t+1]=Sqlist[t];
        Sqlist[i-1]=x;                           /*插入元素*/
        *len=*len+1;                          /*表长加1*/
    }
    
    /**   向顺序表中删除元素    */
    /**   参数Sqlist:表首地址    */
    /**   参数*len: 表的长度     */
    /**   参数i: 删除元素的位置 */
    void DelElem(int Sqlist[],int *len,int i)
    {
        int j;
        if(i<1 || i>*len)
        {
            printf("This insert is illegal");
            return;
        }                                    /*非法插入*/
        for(j=i;j<=*len-1;j++)
            Sqlist[j-1]=Sqlist[j];               /*将第i个元素之后的元素前移*/
        *len=*len-1;                          /*表长减1*/
    }
    
    /**测试函数*/
    int main()
    {
        /*按照题目要求进行测试*/
        int Sqlist[MaxSize];                   /*定义一个静态顺序表*/
        int len;
        int i;
        printf("please input 6 numbers:
    ");
        for(i=0;i<6;i++)
            scanf("%d",Sqlist+i);               //此句和下一句的功能一样,注意区分
            //scanf("%d",&Sqlist[i]);            /*从键盘输入6个整数*/
                                                //c中,输入的分割是回车或者空格,数量不限制
        len=6;
        for(i=0;i<len;i++)
            printf("%d ",Sqlist[i]);            /*输出顺序表中的6个整数*/
        printf("
    The spare length is %d
    ",MaxSize - len);    /*显示表中的剩余空间*/
        insertElem(Sqlist,&len,3,0);          /*在表中第3位置插入整数0*/
        for(i=0;i<len;i++)
            printf("%d ",Sqlist[i]);            /*输出顺序表中的所有元素*/
        printf("
    The spare length is %d
    ",MaxSize - len);   /*显示表中的剩余空间*/
        insertElem(Sqlist,&len,11,0);            /*在表中第11位置插入整数0*/
        DelElem(Sqlist,&len,6);              /*删除顺序表中的第6个元素*/
        for(i=0;i<len;i++)
            printf("%d ",Sqlist[i]);            /*输出顺序表中的所有元素*/
        printf("
    The spare length is %d
    ",MaxSize - len);     /*显示表中的剩余空间*/
        //getche();
        return 0;
    }
  • 相关阅读:
    数据结构—链表
    python字母串查找基本操作
    python九九乘法表程序代码
    SpringMVC跨域问题排查以及源码实现
    深入理解MySql子查询IN的执行和优化
    Dubbo源码阅读-服务导出
    Disconf源码分析之启动过程分析下(2)
    Disconf源码分析之启动过程分析上(1)
    Java多线程volatile和synchronized总结
    Java多线程基础总结
  • 原文地址:https://www.cnblogs.com/little-white/p/3592097.html
Copyright © 2011-2022 走看看