线性表1

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
 
#define MAXSIZE 20
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int Status;

typedef int ElemType;

typedef struct
{
    ElemType data[MAXSIZE];
    int length;
}SqList;

/*获得元素*/ 
Status GetElem( SqList L, int i, ElemType *e )
{
    if( L.length=0 || i<1 || i>L.length)
        return ERROR;
    *e = L.data[i-1];
    return OK;
}

Status InsertElem(SqList *L, int i, ElemType e)
{
    if(L->length == MAXSIZE) /*满了插不进去*/
        return ERROR;
    if(i<1 || i>L->length+1) /*i不在范围内*/
        return ERROR;
    int k;
    if(i<L->length) /*插入位置不在表尾*/
    {
        for(k=L->length-1; k>=i-1;k--) 
            L->data[k+1] = L->data[k];
    }
    
    L->data[i-1] = e;  
    L->length++;
    return OK;
}

Status DeleteElem(SqList *L, int i)
{
    if(L->length==0)
        return ERROR;
    if(i>L->length || i<1)
        return ERROR;
        
    int k;
    for(k=i-1;k<L->length-1;k++)
    {
        L->data[k] = L->data[k+1];
    }
    L->length--;
    return OK;
}

int main()
{
    int i ;
    SqList *L = (SqList*)malloc(sizeof(SqList)); /*头文件:malloc.h/stdlib.h*/
    L->length = 0; /*少了初始化的函数,只能自己设置长度为0 */
    for(i=1;i<6;i++)
    {
        InsertElem(L,i,i);
        /*insert函数里面已经有了length++了。 */
    }
    return 0;
}

 

posted @ 2014-12-24 02:09  mightyq  阅读(126)  评论(0)    收藏  举报