分类:
2011-05-20 18:33:52
原文地址:C_顺序表 作者:luozhiyong131
/*
* 顺序表实现函数
* Lzy 2011-5-17
*/
#include
#define MaxLen 100 /*线性表的容量*/
typedef int ElemType; /*线性表元素类型*/
typedef struct node
{
ElemType data[MaxLen]; /*定义存储表中元素的数组*/
int length; /*线性表的实际长度*/
}SeqList;
void SeqListInit(SeqList *SL) /*初始化顺序表*/
{
SL->length = 0; /*表长度置为0*/
}
int SeqListGetlen(SeqList *SL) /*线性表的长度*/
{
return SL->length;
}
ElemType SeqListGetelem(SeqList *SL,int i) /*按序号取元素*/
{
if(i < 1 || i > SL->length) /*检查序号是否有误*/
{
printf("查找序号有误!\n");
return 0;
}
return SL->data[i-1];
}
int SeqListLocate(SeqList *SL,ElemType X) /*按值查找,返回序号*/
{
int n;
for(n = 0; n < SL->length; n++)
if(SL->data[n] == X)
return n;
return 0; /*没找到,返回假*/
}
int SeqListInsert(SeqList *SL,int i,ElemType X) /*在第i个位置插入X*/
{
int n;
if(i < 1 || i > SL->length)
{
printf("插入位置有误:\n");
return 0;
}
if(SL->length >= MaxLen)
{
printf("存储空间已满:\n");
return 0;
}
for(n = SL->length; n >= i; n--) /*将插入点之后的所有元素向后移动*/
SL->data[n+1] = SL->data[n]; /*数据后移*/
SL->data[n] = X; /*数据插入*/
SL->length++; /*表长加一*/
return 1;
}
int SeqListDelele(SeqList *SL,int i) /*删除第i个元素*/
{
if(i < 1 || i > SL->length)
{
printf("删除位置有误:\n");
return 0;
}
for(; i <= SL->length;i++) /*将删除点之后的所有元素向前移动*/
SL->data[i-1] = SL->data[i];
SL->length--;
return 1;
}
——第二部分:Linux C