数据结构的线性表没错误但运行不了???

双鱼的忧郁城堡 2013-11-04 07:51:59
# include<iostream>

using namespace std;
typedef class List
{
public:
char date[5];

List*p;
int length;
}SqList;
SqList *L;

void CreateList(SqList*L,char s[])//初始化顺序表
{
int i;

L=(SqList*)malloc(sizeof(SqList));
L->length=0;
for(i=0;i<5;++i)
{
L->date[i]=s[i];
L->length++;
}
}


void DispList(SqList*L)//输出顺序表L
{

cout<<"Please output"<<" "<<L->length<<" "<<"numbers";
for(int i=0;i<L->length;++i)
cout<<"output the "<<i<<" "<<"number"<<L->date[i];

}
void ListLength(SqList*L)//输出顺序表L的长度
{
cout<<"The length of the List is "<<L->length;

}
bool ListEmpty(SqList*L)//判断顺序表L是否为空
{
return(L->length==0);
}
char GetList(SqList* L,int k)//输出顺序表的第3个元素
{ char e;
if(k<1||k>L->length)
cout<<"It is wrong!!";
else
e=L->date[k-1];
return e;

}
int LocateElem(SqList*L,char e)//输出元素e的逻辑位置
{
int i=0;
while(i<L->length&&L->date[i]!=e)
i++;
if(i>=L->length)
return 0;
else
return i+1;

}
bool ListInsert(SqList*&L,int i,char e)//在第4个元素位置上插入元素f
{
int j;

if(i<1||i>L->length+1)
cout<<"It is wrong!!";
else
i--;
for(j=L->length;j>i;j--)

L->date[j]=L->date[j-1];
L->date[i]=e;
L->length++;
return true;

}
bool ListDelete(SqList*&L,int i)//删除L的第3个元素
{
int j;
if(i<1||i>L->length)
return false;
i--;//将顺序表逻辑序号转化为物理序号
for(j=i;j<L->length-1;j++)
L->date[j]=L->date[j+1];
L->length--;
return true;


}

void main()
{

char s[5]={'a','b','c','d','e'};
int q=3;
char e1='a';
char e2='f';
int j=4;
CreateList(L,s);
DispList(L);
ListLength(L);
ListEmpty(L);
GetList(L,3);

LocateElem(L,e1);

ListInsert(L,j,e2);
DispList(L);

ListDelete(L,q);
DispList(L);
free(L);//释放L



}
...全文
88 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
哦,谢谢了!
愤世嫉俗2013 2013-11-07
  • 打赏
  • 举报
回复
你那样写创建List是不能反回动态内存的,所以创建的链表失败了,要返回动态内存徐传入二级指针!
  • 打赏
  • 举报
回复
同学帮我看了下,在“void CreateList(SqList*L,char s[])//初始化顺序表”的*后面加个&能运行但他不知道原因。
  • 打赏
  • 举报
回复
好的,会改进的
DP_Krobelus 2013-11-04
  • 打赏
  • 举报
回复
应该再给点其它信息啊,另外贴代码时选择一下代码风格帖子会好看很多。

64,691

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧