数据结构,线性表

intInitList_Sq(SqList&L){L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));是何... int InitList_Sq(SqList & L){

L.elem=(ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));
是何意思?具体一点
展开
 我来答
圆桌4819
2011-09-22 · TA获得超过345个赞
知道小有建树答主
回答量:694
采纳率:0%
帮助的人:408万
展开全部
#include<iostream.h>
#include"SqList.h"
void fun2(SqList I)
{
int temp,p,q;
q=I.length/2;
p=I.length/2;
for(int i=1;i<=p;i++)
{
temp=I.elem[q+i];
I.elem[q+i]=I.elem[q-i];
I.elem[q-i]=temp;
}
cout<<"输出顺序表:"<<endl;
for(int w=0;w<I.length;w++) cout<<I.elem[w]<<" ";
}
void fun1(SqList M)
{
int temp,q,s;
q=M.length/2;

for(int i=0;i!=q;i++)
{

s=M.length-i-1;
temp=M.elem[i];
M.elem[i]=M.elem[s];
M.elem[s]=temp;
}
cout<<"输出顺序表:"<<endl;
for(int v=0;v<M.length;v++) cout<<M.elem[v]<<" ";
}

int main()
{
SqList L;
InitList_Sq(L);
Create_Sq(L);
Print_Sq(L);
switch(L.length%2)
{
case 0:fun1(L);break;
case 1:fun2(L);break;
}
return 0;
}

SqList
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;

typedef int ElemType;

#define LIST_INIT_SIZE 10
#define LISTINCREMENT 2
typedef struct{
ElemType *elem;
int length;
int listsize;
}SqList;

Status InitList_Sq(SqList &L)
{
// 构造一个空的线性表L。
L.elem = new ElemType[LIST_INIT_SIZE];
if (!L.elem) return OVERFLOW; // 存储分配失败
L.length = 0; // 长度为0
L.listsize = LIST_INIT_SIZE; // 初始存储容量
return OK;
} // InitList_Sq

Status ListInsert_Sq(SqList &L, int i, ElemType e)
{
ElemType *p,*q;
if (i < 1 || i > L.length+1) return ERROR;
q = &(L.elem[i-1]); // q指示插入位置
for (p = &(L.elem[L.length-1]); p >= q; --p)
*(p+1) = *p;
// 插入位置及之后的元素右移
*q = e; // 插入e
++L.length; // 表长增1
return OK;
} // ListInsert_Sq

Status ListDelete_Sq(SqList &L, int i, ElemType &e)
{
ElemType *p,*q;
if ((i < 1) || (i > L.length)) return ERROR;
p = &(L.elem[i-1]); // p为被删除元素的位置
e = *p; // 被删除元素的值赋给e
q = L.elem+L.length-1; // 表尾元素的位置
for (++p; p <= q; ++p) *(p-1) = *p; // 被删除元素之后的元素左移
--L.length; // 表长减1
return OK;
} // ListDelete_Sq

void Create_Sq(SqList &L)
{
cout<<"请输入元素个数:";
cin>>L.length;
cout<<"创建顺序表"<<endl;
for(int i=0;i<L.length;i++)
{
cout<<"请输入第"<<i+1<<"个数:";
cin>>L.elem[i];
}
}

void Print_Sq(SqList &L)
{
cout<<"输出顺序表:"<<endl;
for(int i=0;i<L.length;i++) cout<<L.elem[i]<<" ";
}
Anycallmotion
2011-09-21 · TA获得超过125个赞
知道答主
回答量:209
采纳率:0%
帮助的人:100万
展开全部
就是为链表L申请内存空间,把申请到的起始地址付给L中的元素elem,L.elem就代表链表的头指针啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wlmtle
2011-09-21 · TA获得超过108个赞
知道答主
回答量:372
采纳率:0%
帮助的人:116万
展开全部
malloc此函数为分配内存的函数,分配的大小就是后面括号里的数值,sizeof就是算ElemType的字节数再乘上前面的。(ElemType*)为标记类型。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wosuiniqunbai
2011-09-22 · 超过10用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:30.1万
展开全部
为线性表L的elem 元素 动态分配LIST_INIT_SIZE 个ElemType大小的内存空间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式