主题:求数据结构编程
#include "Lineast.h"
/*抽象数据类型的操作实现*/
void InitList(SqList *L) /*初始化线性表*/
{
L->Length=0;
}
void CreateList(SqList *L) /*创建线性表*/
{
int i,ok;
ElemType e;
InitList(L);
i=0;
printf("input end while enter -9999!\n");
while(1)
{
scanf("%d",&e);
if(e!=-9999)
{ ok=InsertElem(L,++i,&e);
if(!ok) break;
}
else
break;
}
L->Length=i;
}
int GetLength(SqList *L) /*获得线性表的长度*/
{
return L->Length;
}
int GetElem(SqList *L,int i,ElemType *e) /*取线性表第i个表元素,并放在e指向的的内存中*/
{
if(i<1||i>GetLength(L))
return 0;
*e=L->data[i];
return 1;
}
int SetElem(SqList *L,int i,ElemType *e) /*修改第i个表元素*/
{
if(i<1||i>GetLength(L))
return 0;
L->data[i]=*e;
return 1;
}
int InsertElem(SqList *L,int i, ElemType *e) /*在第i个位置插入元素,插入成功返回1*/
{
int j;
/*请在以下部分插入程序代码*/
/*插入代码结束*/
return 1;
}
int DeleteElem(SqList *L,int i) /*删除第i个元素,删除成功返回1*/
{
int j;
int n=GetLength(L);
/*请在以下部分插入程序代码*/
/*插入代码结束*/
return 1;
}
int SearchElem(SqList *L,ElemType *e) /*查找元素*e的位置j,找到返回,找不到返回-1,表示查找失败*/
{
int j;
int n=GetLength(L);
/*请在下面插入你的代码*/
/*插入代码结束*/
return j<=n?j:-1;
}
int TraversList(SqList *L) /*遍历线性表*/
{
int j;
int n=GetLength(L);
ElemType e;
if(n==0)
{ printf("Lineast is Empty!!!\n");
return 0;
}
for(j=1;j<=n;j++)
{ GetElem(L,j,&e);
printf("%6d",e);
}
return 1;
}
void ClearList(SqList *L) /*清除线性表*/
{
L->Length=0;
}
/* 以下为补充顺序表逆置操作实现 */
/* 补充结束 */
/*抽象数据类型的操作实现*/
void InitList(SqList *L) /*初始化线性表*/
{
L->Length=0;
}
void CreateList(SqList *L) /*创建线性表*/
{
int i,ok;
ElemType e;
InitList(L);
i=0;
printf("input end while enter -9999!\n");
while(1)
{
scanf("%d",&e);
if(e!=-9999)
{ ok=InsertElem(L,++i,&e);
if(!ok) break;
}
else
break;
}
L->Length=i;
}
int GetLength(SqList *L) /*获得线性表的长度*/
{
return L->Length;
}
int GetElem(SqList *L,int i,ElemType *e) /*取线性表第i个表元素,并放在e指向的的内存中*/
{
if(i<1||i>GetLength(L))
return 0;
*e=L->data[i];
return 1;
}
int SetElem(SqList *L,int i,ElemType *e) /*修改第i个表元素*/
{
if(i<1||i>GetLength(L))
return 0;
L->data[i]=*e;
return 1;
}
int InsertElem(SqList *L,int i, ElemType *e) /*在第i个位置插入元素,插入成功返回1*/
{
int j;
/*请在以下部分插入程序代码*/
/*插入代码结束*/
return 1;
}
int DeleteElem(SqList *L,int i) /*删除第i个元素,删除成功返回1*/
{
int j;
int n=GetLength(L);
/*请在以下部分插入程序代码*/
/*插入代码结束*/
return 1;
}
int SearchElem(SqList *L,ElemType *e) /*查找元素*e的位置j,找到返回,找不到返回-1,表示查找失败*/
{
int j;
int n=GetLength(L);
/*请在下面插入你的代码*/
/*插入代码结束*/
return j<=n?j:-1;
}
int TraversList(SqList *L) /*遍历线性表*/
{
int j;
int n=GetLength(L);
ElemType e;
if(n==0)
{ printf("Lineast is Empty!!!\n");
return 0;
}
for(j=1;j<=n;j++)
{ GetElem(L,j,&e);
printf("%6d",e);
}
return 1;
}
void ClearList(SqList *L) /*清除线性表*/
{
L->Length=0;
}
/* 以下为补充顺序表逆置操作实现 */
/* 补充结束 */