c语言函数初始化列表,c 初始化列表

用c语言写一个程序,初始化一个线性表。跪求

#include stdio.h

创新互联是专业的思南网站建设公司,思南接单;提供成都网站设计、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行思南网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

#include malloc.h

# define MaxSize 50

typedef struct{

ElemType data[MaxSize];//存放顺序表元素

int length;//存放顺序表长度

}SqList;//顺序表类型定义

//建立顺序表

void CreateList(SqList *L,ElemType a[],int n){

int i;

for(i=0;in;i++){

L-data [i]=a[i];

}

L-length =n;

}

//顺序表基本运算算法

//初始化线性表InitList(L)

void InitList(SqList *L){

L=(SqList *)malloc(sizeof(SqList));//分配存放线性表的空间

L-length =0;

}//本算法的时间复杂度为O(1)

//销毁线性表

void DestroyList(SqList *L){

free(L);

}//本算法的时间复杂度为O(1)

//判断线性表是否为空

int ListEmpty(SqList *L){

return (L-length ==0);

}//本算法的时间复杂度为O(1)

//求线性表的长度

int ListLength(SqList *L){

return (L-length);

}//本算法的时间复杂度为O(1)

//输出线性表

void DispList(SqList *L)

{

int i;

if(ListEmpty(L)) return;

for(i=0;iL-length;i++){

printf(nn,L-data[i]);

}

printf("\n");

}//本算法的时间复杂度为O(L-length)

//求线性表中某个数据的元素值

int GetElem(SqList *L,int i,ElemType e)

{

if(i1||iL-length)

return 0;

e=L-data[i-1];//这儿体现了数组的优点,可以直接通过下标访问

return 1;

}//本算法的时间复杂度为O(1)

//按元素的值查找

int LocateElem(SqList *L,ElemType e){

int i=0;

while(iL-length L-data[i]!=e)i++;

if(i=L-length)

return 0;

else

return i+1;

}//本算法中基本运算为while循环中的i++语句,故时间复杂度为O(L-length)

//插入数据元素

int ListInsert(SqList *L,int i,ElemType e){

int j;

if(i1 || iL-length+1)

return 0;//参数错误,返回0

i--;//将顺序逻辑位序变为物理位序

for(j=L-length;ji;j--){

L-data[j]=L-data[j-1];//将data[i]及后面的元素后移一个位置

}

L-data[i]=e;//插入元素e

L-length++;//增加长度

return 1;

}//本算法的平均时间复杂度为O(n)

//删除数据元素

int ListDelete(SqList *L,int i,ElemType e){

int j;

if(i1 || iL-length)

return 0;

i--;//将顺序逻辑位序变为物理位序

e=L-data[i];

for(j=i;jL-length-1;j++){

L-data[j]=L-data[j+1];//将data[i]之后的元素前移一个位置,这就是数组中的删除思想

}

L-length--;

return 1;

}//本算法的平均时间复杂度为O(n)

跪求:线性表初始化函数的详细解释(c语言)

函数中不会修改main()函数中定义的变量,修改如下:

//---------------------------------------------------------------------------

#include

#include

#define

LIST_INIT_SIZE

100

#define

LISTINCREMENT

10

typedef

int

ElemType[LIST_INIT_SIZE];

typedef

struct

{

ElemType

*elem;

int

length;

int

listsize;

}SqList;

typedef

int

Status;

int

InitList_Sq(SqList

*L)

/*注意这里*/

{

L-elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));

/*注意这里*/

if(!L-elem)

/*注意这里*/

L-length=1;

/*注意这里*/

printf("%d\n",L-length);

/*注意这里*/

L-listsize=LIST_INIT_SIZE;

/*注意这里*/

return

1;

}

int

main()

{

SqList

p=;

/*注意这里*/

InitList_Sq(p);

/*注意这里*/

printf("%d\n",p.length);

return

0;

}

//---------------------------------------------------------------------------

C语言数据结构顺序列表初始化问题!!!

#include

stdio.h

#include

malloc.h

/*包含头文件*/

#define

INIT_SIZE

100

/*去除分号*/

typedef

int

ElemType;

typedef

struct{

ElemType

*elem;

int

length;

int

listsize;

}SqList;

//SqList

L;

不需要用全局变量

int

SqListInit(SqList

L)

/*删除了*号,采用引用参数*/

{

L.elem=(ElemType

*)malloc(INIT_SIZE*sizeof(ElemType));

if(!L.elem)

return

0;

L.length=0;

L.listsize=INIT_SIZE;

return

1;

}

void

main()

{

SqList

L;

/*用局部变量*/

SqListInit(L);

/*调用时,去除实参参数类型*/

printf("当前长度为%d\n",L.length);

printf("当前空间为%d\n",L.listsize);

free(L.elem);

/*退出前最好要释放L所用的堆空间*/

}

C语言(数据结构)顺序表的初始化

肯定是要分配空间的,你第一个程序的initsqlist函数中声明的结构体指针(Sqlist *a;),而第二个程序的initsqlist函数中是声明的结构体(Sqlist a;),前者只是在计算机内存中声明一个指针,而不会给这个指针分配内存空间,所以你初始化的时候要给这个指针用malloc函数分配空间,而后者是实实在在的定义了一个结构体,在内存在不仅仅是一个地址,还分配了空间,就像你定义了一个数组一样,已经在内存存在空间了,不需要再分配了。

总体来说就是你定义的是指针的话就要分配空间。

你的2个程序都是对的,但是一般用第一种定义链表!!!

C语言数组的初始化表示方法

不是inta[]   而是例如int a[10]这种。括号内一定要有个常量数字。

我们可以这样定义

#define N 5

int a[N]

这表明了数组名为a;数组有5个元素;分别是a[0]到a[4];

对于数组来说;数组是变量的集合,因此数组也具有与变量相同的数据类型和储存类型。数组的类型就是它所有的变量的类型。在定义数组时,应在数组名前对数组的类型加以确定。如上面的int a[10];则表明了数组内元素均为整形。

所有当表示浮点型可以定义为例如float a[10]。 举例如下:

扩展资料

数组名是由用户命名的C语言标识符,要遵循标识符命名规则。数组名表示数组存储区域的首地址。数组的首地址也就是第一个元素的地址。数组名是一个地址常量,不能对它赋值。

数组名后是由方括号括起来的常量表达式,不能使用其他括号


分享标题:c语言函数初始化列表,c 初始化列表
链接URL:http://scyanting.com/article/dsshgod.html