数据结构 串插入的表示与实现 (堆栈分配存储表示)
这是我编的一个程序 初学数据结构也不知具体错误在哪里
希望高手们能够给我详细解答
呵呵 将感激不尽哦
/* 相关库文件的使用 */
这是头文件:
#include<string.h>
// #include<ctype.h>
#include<malloc.h> /* 动态分配函数的定义malloc()等 */
// #include<limits.h> /* INT_MAX等 */
// #include<stdio.h> /* EOF(=^Z或F6),NULL */
// #include<stdlib.h> /* atoi() */
// #include<io.h> /* eof() */
// #include<math.h> /* floor(),ceil(),abs() */
#include<process.h> /* 异处理函数的定义exit() */
#include<iostream.h>
/* 程序中有关函数结果状态代码 */
// #define TRUE 1
//#define FALSE 0
#define OK 1
#define ERROR 0
// #define INFEASIBLE -1
#define OVERFLOW -2 /*在math.h中定义OVERFLOW的值为3 */
typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */
//typedef int Boolean; /* Boolean是布尔类型,其值是TRUE或FALSE */
//typedef int ElemType; /*指定操作对象为整型*/
typedef struct {
char *ch;
//若是非空串,则按串长分配存储区,
//否则ch为NULL
int length; //串长度
}hstring;
这是基本操作头文件:
Status strassign(hstring &t,char *chars){
//生成一个其值等于串常量chars的串t
if(t.ch) free(t.ch);
for(i=0,c=chars;c;++i,++c);
if(!i) {
t.ch=NULL; t.length=0;
}
else{
if(!(t.ch=(char *)malloc(i*sizeof(char))))
exit(OVERFLOW);
t.ch[i]=chars[i];
t.length=i;
}
return OK;
}
Status strinsert(hstring &s,int pos,hstring t){
if(pos<1 || pos>s.length+1)
return ERROR;
if(t.length){
if(!(s.ch=(char*)realloc(s.ch,(s.length+t.length)*sizeof(char))))
exit(OVERFLOW);
for(i=s.length-1;i>pos-1;--i)
s.ch[i+t.length]=s.ch[i];
// s.ch[pos-1..pos+t.length-2]=t.ch[0..t.length-1];
s.length+=t.length;
}
return OK;
}
这是main.cpp:
#include<iostream.h>
#include"基本操作.h"
#include"定义.h"
int main()
{
int pos;
Status strassign(hstring s,char *ewewedaafas);
Status strassign();
cin>>pos;
Status strinsert(hstring s,int pos,hstring t);
cout<<"s"<<" "<<endl;
return 0;
}
这是调试的时候显示的错误:
-Configuration: 堆存贮的串 - Win32 Debug--------------------
Compiling...
main.cpp
c:\program files\microsoft visual studio\myprojects\堆存贮的串\基本操作.h(2) : error C2146: syntax error : missing ';' before identifier 'strassign'
c:\program files\microsoft visual studio\myprojects\堆存贮的串\基本操作.h(2) : error C2501: 'Status' : missing storage-class or type specifiers
c:\program files\microsoft visual studio\myprojects\堆存贮的串\基本操作.h(2) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.
堆存贮的串.exe - 1 error(s), 0 warning(s)