数据结构之线性表
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);
}
#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);
}
相关文章推荐
- 数据结构之线性表
- c/c++常用算法(2) -- 数据结构(线性表的链式存储)
- 数据结构实验1 线性表的有关操作
- 数据结构之线性表
- 数据结构——线性表的链式存储
- 线性表顺序存储结构实现(线性表-数据结构作业)
- 数据结构之线性表的几种主要存储
- 数据结构线性数组的基本操作
- C#数据结构(一)----线性表
- 数据结构(3):两个有序线性结构的合并
- 数据结构——第二讲、线性结构(2)
- 数据结构之线性表
- 数据结构之线性表-链式存储之单链表(一)
- 数据结构之线性结构-链表的应用(求两个一元多项式之和)
- C++数据结构之线性顺序表基本操作
- 数据结构与算法之线性表(一)
- 数据结构之线性表
- 数据结构之线性表
- 数据结构(线性结构习题)Problem A: 求集合的交并补集
- 爹地的实验:实验一: 数据结构实验一线性表的基本操作实现及其应用