顺序表的操作
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");
}
#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");
}
相关文章推荐
- C语言版数据结构中顺序表的基本操作定义和初始化
- 栈的基本操作------顺序结构
- 再回首,数据结构——顺序栈上的常见操作
- 数据结构(3)-线性表顺序结构的合并操作
- 栈和队列的基本操作(分顺序和链式,5种基本操作有创建,判空,判满,入,出)
- 顺序表 查找 插入 删除 操作
- 线性表的顺序表示和操作
- 队列的顺序存储的基本操作.....
- Opengl固定渲染管线操作顺序
- java实现线性表的顺序存储操作
- 顺序表的操作集合
- 顺序串的操作实现
- 顺序表的基本操作(创建,遍历,查找,删除,归并)
- 9.3顺序容器操作
- 顺序容器 6 删除操作
- 或操作(||)和与操作(&&)的执行顺序以及返回结果
- 顺序队列的操作
- C++ 顺序容器的操作(3) 关系运算符>、<、==、!=
- 顺序表的基本操作
- UI方法调用顺序和UI常用操作