您的位置:首页 > 其它

线性表的顺序存储实现

2017-03-08 17:30 141 查看
#include <stdio.h>
typedef struct LNode *List;
typedef struct
{
ElementType Data[MAXSIZE];
int Last;
} LNode;
//初始化顺序表
List MakeEmpty()
{
List PtrL;
PtrL=(List)malloc(sizeof(LNode));
PtrL->Last=-1;
return PtrL;
}
int Find(ElementType X,List PtrL)
{
int i=0;
while(i<=PtrL->Last&&PtrL->Data[i]!=X)
{
i++;
}
if(i>PtrL->Last) return -1;
else return i;
}
void Insert(ElementType X,int p,List PtrL)
{
int P;
int i;
if(PtrL->Last==MAXSIZE-1)
{
printf("表满");
return false;
}
if(P<0||P>PtrL->Last+1)
{
printf("位置不合法");
return false;
}
for(i=PtrL->Last;i>=P;i--)
{
PtrL->Data[i+1]=PtrL->Data[i];
}
PtrL->Data[P]=X;
PtrL->Last++;
return true;
}
bool Delete(List PtrL,int P)
{
int i;
if(P<0||P>PtrL->Last)
{
printf("位置%d不存在元素",P);
return false;
}
for(i=P+1;i<=PtrL->Last;i++)
{
PtrL->Data[i-1]=PtrL->Data[i];
}
PtrL->Last--;
return true;
}
int main(int argc, char *argv[])
{
LNode L;
List PtrL;
}
注意:这个代码实际上不能运行,因为并没有用模板,却使用了诸如ElementType这种类型,实际上这只是个代码框架的示范,在实际实现的时候要使用具体的类型或使用C++的模板,这个代码相当于非常详细的伪代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: