首页 > 其他 > 详细

静态顺序表的各种操作

时间:2014-03-10 20:44:24      阅读:503      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
//
//  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\n");
        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:\n");
    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("\nThe spare length is %d\n",MaxSize - len);    /*显示表中的剩余空间*/
    insertElem(Sqlist,&len,3,0);          /*在表中第3位置插入整数0*/
    for(i=0;i<len;i++)
        printf("%d ",Sqlist[i]);            /*输出顺序表中的所有元素*/
    printf("\nThe spare length is %d\n",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("\nThe spare length is %d\n",MaxSize - len);     /*显示表中的剩余空间*/
    //getche();
    return 0;
}
bubuko.com,布布扣

静态顺序表的各种操作,布布扣,bubuko.com

静态顺序表的各种操作

原文:http://www.cnblogs.com/little-white/p/3592097.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!