码迷,mamicode.com
首页 > 其他好文 > 详细

顺序表

时间:2015-06-06 14:48:45      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

#include<stdio.h>
#include<stdlib.h>

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INIT_SIZE 10
#define INCREMENT_SIZE 10

typedef int Elemtype;
typedef int Status;
typedef struct {
Elemtype *base;
int size;
int length;
}SqList;

Status InitSqList(SqList *L)
{
L->base=(Elemtype *)malloc(INIT_SIZE*sizeof(Elemtype));
if(!L->base)
{
printf("init_false:\n");
return ERROR;
}
L->size=INIT_SIZE;
L->length=0;
return OK;
}
Status InsertElem(SqList *L,int i,Elemtype e)
{
if(i<1||i>L->length+1)
{
return ERROR;
}
if(L->length>=L->size)
{
L->base=(Elemtype *)realloc(L->base,(L->size+INCREMENT_SIZE)*sizeof(Elemtype));
if(!L->base)
{
printf("insert_fail\n");
return ERROR;
}
L->size+=INCREMENT_SIZE;
}
Elemtype *q=&L->base[L->length-1];
Elemtype *p=&L->base[i-1];
for(;q>=p;q--)
{
*(q+1)=*q;

}
*p=e;
L->length++;
return OK;
}

Status TraverseList(SqList *L)
{
int i;
for(i=0;i<L->length;i++)
printf("%d\n",L->base[i]);
}

int main()
{ SqList L;
InitSqList(&L);
for(int i=0;i<10;i++)
InsertElem(&L,i+1,i);
TraverseList(&L);
return 0;
}

顺序表

标签:

原文地址:http://www.cnblogs.com/loveyan/p/4556597.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!