关于c语言数据结构的头文件和Elemtype类的一些问题

最近在学习数据结构 很多问题...以下是一个判别表达式开闭括号是否配对的算法
1.我想问下在这个算法完成后需要包含什么头文件啊 类似的算法都是一样吗,这个使用c语言写的 用vc编译
2.这只是个小例,在编译的时候总是出现诸多未定义之类的错误
3.还有就是在写算法的时候 类似于 INITSTACK之类的函数可以直接用还是需要将这函数的定义也写出来呢?
4.并且还想问一下,在c语言数据结构中 诸如 Elemtype QElemtype SElemtype代表什么意思啊 很费解
例如在 typedef struct{
SElemtype *base;
SElemtype *top
int stacksize;
}SqStack;
中 5.SElemtype具体代表什么类型
请高手指点 菜鸟在这里先谢谢啦
Status Bracket_Test(char *str)//判别表达式中小括号是否匹配
{
count=0;
for(p=str;*p;p++)//p count 不需定义?
{
if(*p=='(') count++;
else if(*p==')') count--;
if (count <0) return ERROR;
}
if(count) return ERROR; //注意括号不匹配的两种情况
return OK;
}//Bracket_Test

1.
<stdio.h>一般写C语言程序都要加这个头文件,因为它包含scanf()、printf()等控制输入和输出的函数
<time.h>包含的主要是和时间相关的函数
<string.h>主要包含用来拷贝或比较字符串的函数
<stdlib.h>主要包含这几个函数:malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()

这是比较常用到的头文件

2.
typedef struct{
SElemtype *base;
SElemtype *top
int stacksize;
}SqStack;
以上为声明一个结构体,并用SqStack作为这个结构体名,结构体即为我们自己定义的数据类型。
其中selemtype也是一个自定义的结构体名,具体代表什么还要看具体的代码。

for(p=str;*p;p++)估计是写错了
如果前面没有定义 char p;
那么这个循环语句应该写成
for(char p=str;*p;p++);
p可以在for语句中定义,但是定义的p只能作用于这条for语句之内。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-26
1、ElemType是数据结构的书上为了说明问题而用的一个词。它是element type(“元素的类型”)的简化体。 因为数据结构是讨论抽象的数据存储和算法的,一种结构中元素的类型不一定是整型、字符型、浮点型或者用户自定义类型,为了不重复说明,使用过程中用“elemtype”代表所有可能的数据类型,简单明了的概括了整体。在算法中,除特别说明外,规定ElemType的默认是int型。

2、常用头文件:
<stdio.h>一般写C语言程序都要加这个头文件,因为它包含scanf()、printf()等控制输入和输出的函数
<time.h>包含的主要是和时间相关的函数
<string.h>主要包含用来拷贝或比较字符串的函数
<stdlib.h>主要包含这几个函数:malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()
第2个回答  2008-04-11
首先要肯定要原本有的东西才能用,一般数据结构的书上的东西,都是自己编的,当然有些书是按照STL(C++标准模板库),其实数据结构中有很多C++都给了标准的模板,就是只要你包含了头文件就可以直接用的,像你上面的应该是书上自己定义的,你看程序应该整体的看,不要把一部分的拿出来,要前后联系一下。比如你说的那些Elemtype QElemtype SElemtype都是你自己定义的抽象数据类型,它可以是任何类型的,C我不太熟悉,不过有一点是可以确定的,你可以在程序的开头自己定义它:typedef char Elemtype;这样Elemtype就是char类型了,
typedef int Elemtype;这样Elemtype就是int类型了,但注意一个程序中的Elemtype只能这样定义一次。不过如果C++中的类模板,就不一样了,比如你已经定义了一个class Seqstack<Type>;这样你在定义对象的时候就可以这样:Seqstack<int>a;Seqstack<char>b;a就是int类型的,b就是char类型的,不存在重复定义。
相似回答