您的位置:首页 > 理论基础 > 数据结构算法

数据结构之线性表

2010-06-07 23:27 417 查看
#include<stdio.h>
#define MAXSIZE 100 /*线性表容量*/
typedef char ElemType;
typedef struct
{
ElemType data[MAXSIZE];
int length;
} SqList;
void InintList(SqList &L) /**初始化**/
{
L.length=0;
}
int GetLength(SqList &L) /**求长**/
{
return L.length;
}
int GetElem(SqList L,int i,ElemType &e) /**求值,i为下标**/
{
if(i<1||i>L.length)
return 0;
else
e=L.data[i-1];
return 1;
}
int Locate(SqList L,ElemType x) /**按值查找**/
{
int i=0;
while(L.data[i]!=x)
{
i++;
}
if(i>L.length)
return 0;
else
return i+1;
}
int InsElem(SqList &L,ElemType x,int i) /**插入元素**/
{
int j;
if(i<1||i>L.length+1)
return 0;
for(j=L.length;j>i;j--)
{
L.data[j]=L.data[j-1];
}
L.data[i-1]=x;
L.length++;
return 1;
}
int DelElem(SqList &L,int i) /**删除元素**/
{
int j;
if(i<1||i>L.length)
return 0;
for(j=i;j<L.length;j++)
{
L.data[j-1]=L.data[j];
}
return L.length--;
return 1;
}
void DispList(SqList L) /*输出线性表*/
{
int i;
for(i=1;i<=L.length;i++)
{
printf("%c ",L.data[i-1]);
}
printf("\n");
}
void main()
{
int i;
ElemType e;
SqList L;
InintList(L);
InsElem(L,'a',1);
InsElem(L,'b',2);
InsElem(L,'c',3);
InsElem(L,'d',4);
InsElem(L,'e',5);
printf("线性表值为:");
DispList(L);
printf("线性表长度:%d\n",GetLength(L));
i=4;
GetElem(L,i,e);
printf("第%d个元素是:%c\n",i,e);
e='c';
printf("元素%c是第%d个元素\n",e,Locate(L,e));
i=4;
printf("删除第%d个元素\n",i);
DelElem(L,i);
printf("线性表:");
DispList(L);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: