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

顺序表的操作

2012-05-23 17:18 197 查看
数据结构顺序表的操作:初始化,增加,删除,查询,显示,测试

#include<iostream>
using namespace std;

#define InitSize 100
typedef int ElemType;

typedef struct
{
ElemType * data;
int MaxSize,length;
}SqList;

void InitList(SqList &L)
{
L.data = (ElemType*)malloc(sizeof(ElemType)*InitSize);
L.length = 0;
}

//插入操作
bool ListInsert(SqList &L,int i,ElemType e)
{
if(i<1 || i>L.length+1)
{
return false;
}
if(L.length >= InitSize)
{
return false;
}

for(int j=L.length;j>=i;j--)
{
L.data[j] = L.data[j-1];
}
L.data[i-1] = e;
L.length++;
return true;
}
//删除操作
bool ListDelete(SqList &L,int i)
{
if(i<1||i>L.length)
{
return false;
}
for(int j=i;j<L.length;j++)
{
L.data[j] = L.data[j+1];
}

L.length--;
return true;
}
//查找算法
int LocationElem(SqList &L,ElemType e)
{
int i;
for(i=0;i<L.length;i++)
{
if(L.data[i] == e)
return i+1;
}
return 0;
}
//查询顺序表中的值
void show(SqList &L)
{
int i = L.length;

for(int j=0;j<i;j++)
{
cout<<L.data[j]<<endl;
}
}
void main()
{
SqList slist1;
SqList &slist=slist1;

InitList(slist);

int i;
for( i=1;i<=10;i++)
{
ListInsert(slist,i,i);
}

ListInsert(slist,i-6,i);

show(slist);
cout<<endl;
cout<<LocationElem(slist,2)<<endl;;
system("pause");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息