问一个内存定义失败一个问题。 还有更迷茫的一个问题.
Status InitTriplet (triplet &T, int v1,int v2,int v3)
// 创建空间给三个数据,赋值 v1 v2 v3
{
T=(int *)malloc(3*sizeof (int)); // 这里的elemtype 可以自己写的吧? 随便写的,比如int.
if (!T) exit (OVERFLOW)// 忘了写在个话就没考虑程序的Robustness 表分配内存空间失败。
T[0]=v1;
T[1]=v2;
T[2]=v3;
return OK;
}// InitTriplet
1)Status 是什么意思? 被typedef int Status ,那不就是int的意思 ?
2)这里很奇怪 if(!T) exit (OVERFLOW) 为什么就能表示分配内存失败 ?
3)这个return OK 表示什么,不是应该return 个数,字符什么的么 ?
接下来就是更迷茫的一个问题, 本人是非计算机专业的学生,因为受某人影响对考软工的热情空前高涨... 于是把C语言先看了一遍,(一本很普通的初级教程).网购的<c与指针>还没mail到.
听说要考数据结构,于是从网路上down了清华的教材下来看,本来我以为对C语言要求不会太高,但看起来还是觉的很难入门... 想问下有经验的人:
我现在是应该继续看C语言呢? 还是已经有足够的能力来看数据结构了,只是需要更多的耐心?
[解决办法]
1)Status 是什么意思? 被typedef int Status ,那不就是int的意思 ?
是int的意思,但是Status表示状态,意义更明确。
这里很奇怪 if(!T) exit (OVERFLOW) 为什么就能表示分配内存失败 ?
内存分配失败T就为NULL。
3)这个return OK 表示什么,不是应该return 个数,字符什么的么 ?
OK就是一个数字
前面应该有这样的定义
enum Status
{
FAIL= -1;
OK;
}
明确的告诉你再看2遍C语言,别管别人干什么,做好自己该做的。
[解决办法]
先好好学好C,数据结构比C更难。
typedef int Status; //那么Status就是int
这里的elemtype 可以自己写的吧? 随便写的,比如int. //一般情况是的。
应该有:typedef 1 OK; //返回成功的意思。
有可能分配失败的,例如太大的时候。
[解决办法]
还是因该多看看基础,要从走到跑,跑的很快自然就飞起来了!
[解决办法]
你看得应该是严蔚敏的数据结构,我现在也在看这本,把基本算法的基础打牢一点.不过我建议第一次学数据结构不要看这本,因为它是用类C语言描述的,最好找本简单的书把数据结构囫囵吞枣一遍,再看这本,效果应该会更好.
我认为你还是先把C的基本规则先了解,尤其要掌握指针与结构体,这样第一次学起数据结构来就不会太吃力.
[解决办法]
动动手