c语言中的线性表问题

1.你其实可以把struct{……}看成一个整体。C和C++不同,C使用结构时前面要用struct,如:

typedef struct a{

elemtype在c语言中是什么意思_!e在c语言中是什么意思elemtype在c语言中是什么意思_!e在c语言中是什么意思


elemtype在c语言中是什么意思_!e在c语言中是什么意思


int length;

}sqlist

加了的话,就不用谢struct了。很方便了。

规范。编程一般讲}person;究规范的!windows下面可以随便写!但是这种不好吧

就是一个简单的判断呀,如果list->last==0,相当于list->last==null,即指针为空。

说明链表里没有任何的元素,直接退出了。。

数据结构 C语言 单链表 Status ListInsert_L(Linklist &L,int i,ElemType e) &L是什么意

struct p在C语言中,函数形参是没有&修饰符的,这个&来自于C++,因为使用方便,且目前的大部分编译环境都支持C++,所以不讲究的人在C中使用了C++的&修饰符,在C++的函数形参表中,&修饰符表示对实参的引用,可以这样理解,通过&作符,在主调函数和被调函数中,主调函数中的实参对于被调函数如同该函数局部变量一样的使用权限,就像全局变量一样。erson students[10];

高手解答 c语言编写数据结构实例 下面的代码看不懂,高手解答

{char name[10];

Status(compare)(ElemType,ElemType))是个函数指针,可以指向类似下面这样的函数:

Status compare(ElemType l,ElemType r){

return l==r;

Status(compare)(ElemType,ElemType)

这是函数指针类型的参数,通过这个参数传进来比较函数

委托一般都int age;是通过函数参数传递,便于代码的维护与升级。

int LocateElem(SqList L,ElemType e,Status(compare)(ElemType,ElemType))

中compare是一个参数的名字,类型为函数指针。

请教一下C语言的结构语法问题

elemtype elem;

elemType叫做数据类型,可以是int,可以是float,因为数据结构着重讲的是结构,所以数据类型的区别就屏蔽了

至于为什么用两个,个人认为hl表示一个结点,hl想表示一组结点.但是,为什么不用链表的首地址表示呢?

1.elemType伪码表示一种数据类型,用时可以为基本地数据类型,例如:int ,float等,elemType data只是定义结构体中的数据类型;

2.getElem(struct sNode hl, int )返回单链表中第个结点中的元素,故应与结构体中的数据类型相同,也为elemType;

3.不是太清楚;这里是某种数据结构,就设这是一个线性表,它储存的元素的数据类型为ElemType(就像整型,浮点型,或者是自定义型等等),表长为LIST-INIT-SIZE,L是一个线性表,L的elem成员是这个线性表的首元素的地址。

【C语言·数据结构】关于malloc和sizeof的用法

int listsize;

个句子:

}用于判断两个元素的大小关系等。

用malloc分配一段这么LIST_INIT_SIZEsizeof(ElemType)多个字节的内存段,它返回一个指向该内存段首字节的指针变量,然后把这个指针变量强制转换为ElemType类型,再把这个经转换的指针变量赋给L的elem成员

先看一段话:

所以你这个句子的意思是:把L的elem指向的那段内存扩大LISTINCREMENTsizeof(ElemType)个字节。

sizeof的用法:这是一个运算符(而不是一个函数,这点认识很重要)

sizeof(类型说明符,数组名或表达式)

得到一个对象或者类型所占的内存字节数。

例如,如果你的机器上int占4字节,那么sizeof(int)就是4

malloc用法:

它是一个函数,原型是void malloc(size_t size);

前面提过了,就是分配size个字节的内存,然后返回指向这段内存首字节的指针,void 表示未确定类型的指针,void 可以指向任何类型的数据,更明确的说是指申请内存空间时还不知道用户是用这段空间来存储什么类型的数据(比如是char还是int或者...),所以你要用它指向什么数据,一般就要在malloc前加一个强制转换,把这个指针转为适合你使用的类型

typedef问题(C语言)

printlist_L 是指函数名称 “_”可用作函数名和变量名

};

typedef struct

person students[10];

这里会被当作struct{char name[10];int age;int ;} students[10];

所以只用一次的struct你甚至可以不写名字,在末尾定义。

2.T是一个ElemType,malloc申请了3个ElemType的长度,T获得的是首地址。其实比如定义一个数组:

int a[10];

其实a[0]等价于a,a[1]等之后就可以使用 Lnode 和LinList 来定义变量了。价于(a+1),以此类推。

所以这里的T也是等价的,T[0]就是T,T[1]就是(T+1)。

C语言没有检查,所以注意越界问题。

定义了一个新类型Triplet,它等价于ElemType ,即ElemType指针类型,可以用Triplet来定义ElemType类型的指针变量,例如:

Triplet a;

等价于

T=(ElemType )malloc(3sizeof(ElemType));这一句返回分配空间的首地址并赋值给T,T是一个ElemType类型的指针,所以之后的T[0],T[1]之类的语句都是按ElemType类型的长度计算的,也就是说,定义了指针变量T,并将T指向分配空间后,就是创建了一个ElemType类型的数组。

建议再看一书好一点的C语言教材,国内的计算机教材内容质量你也看到了,,这些基本内容都没有讲到,建议再选择一本国外的C语言教材,只要自己能看懂的就好,继续学习一下,否则以后学习算法、数据结构的过程你会感到非常吃力。

在数据结构中(C语言描述),这个是什么意思?求分析

或sizeof 变量名

这确实是一个结构体,这个结构体的数据域包含了一个栈的信息,比如栈顶 指针就typedef int ElemType;是top,栈的大小就是stackSize……,总之,用SqStack 定义一个变量,这个变量就是一个空栈,除了个个元素之外,其他元素进入栈的时候,top指针就会发生移动,我想你的栈的元素就是SElemType 吧!

C语言结构体类型

递归是调用自身,数据结构里的链表定义里边是结构体指针,而非结构体自身,不是递归调用。

线性表单链表并没有递归调用啊,他是用指针指向下一个链表struct Lnode next;

你去在理解下递归思想。

如果不加typedef的话,那么struct a是一个数据类型,呵呵,前面的都没说到问题的本质.

建议你先去了解下什么是int ;指针,什么是指针变量.

因为指针变量是存放指针的,并没有被分配所指向数据类型的内存.

但是指针变量就不同,只占4个字节而已.并非真正意义上的结构体变量,因为它所占有的内存并非是结构体大小的内存.

这都需要自己去多写程序,多理解,说不明白的,只能自己悟.

Status GetElem_L(LinkList L,int i,ElemType &e)里面的Status和ElemType &e是什么意思?

ElemType a;struct person

status就是“状态”的意思,就是这个函数运行完返回一个状态值,这个状态值可以是自己定义,比如定义为整型,通过返回值可以知道运行是否成功,或者错误原因究竟是什么?比如返回0表示成功,返回1表示什么什么错误。ElemType &e这个是指参数不使用值传递,c的话用指针,c++用引用或指针都可以。