学习数据结构了,写下来,加深记忆。
第一篇:
//system("cls"); 控制台屏幕刷新
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#define MAXSIZE 100
typedef int DataType;
typedef struct
{
DataType data[MAXSIZE];
int length;
}SeqList;
///初始化顺序表
SeqList SeqListInit( )/// OK
{
SeqList L;
//cout<<"线性表以创建"<<endl;
L.length = 0;
return L;
}
/// 销毁顺序表
SeqList ListClear(SeqList L)/// OK
{
L.length=0;
//cout<<"线性表已销毁"<<endl;
return L;
}
///判断顺序表是否为空表
int ListEmpty(SeqList L)/// OK
{
return (L.length==0);
}
///判断顺序表是否为满
int ListFull(SeqList L)/// OK
{
return (L.length==MAXSIZE);
}
///求顺序表长度
int ListLength(SeqList L)/// OK
{
return L.length;
}
///从顺序表中查找元素
bool ListGet(SeqList L ,int i,DataType &x)/// OK
{
if(i<0||i>L.length)
{
printf("查询错误!\n");
return false;// 超出表范围,错误,返回-1
}
x = L.data[i-1];//顺序表元素下标从0开始
return true;
}
///从顺序表中查找与给定元素值相同的元素在顺序表中的位置
int ListLocate(SeqList L, DataType x)/// OK
{
int i,mun = -1;
for(i = 0;i<L.length;i++)
{
if(L.data[i]==x)
{
mun = i;
}
}
if(mun==-1)
{
printf("当前顺序表没有元素 %d \n",x);
return -1;
}
else
return mun+1;
}
/// 向顺序表中插入元素
SeqList ListInsert1(SeqList L,DataType x)/// OK
{
if(L.length==MAXSIZE)
printf("表满,错误\n");// 表满,返回错误
L.length++;
L.data[L.length-1] = x;
return L;
}
/// 插入元素 给定元素位置和值
SeqList ListInsert(SeqList L,int i,DataType x)
{
int j;
i = i-1;
if(L.length>MAXSIZE)
{
printf("表满,错误\n");// 表满,返回错误
return L;
}
for(j = L.length-1;j>i;j--)
{
L.data[j] = L.data[j-1];
}
L.length++;
L.data[i] = x;
return L;
}
/// 从顺序