| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 887 人关注过本帖
标题:数据结构 串插入的表示与实现 (堆栈分配存储表示)
取消只看楼主 加入收藏
fengqunying7
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-9-28
结帖率:100%
收藏
 问题点数:0 回复次数:0 
数据结构 串插入的表示与实现 (堆栈分配存储表示)
这是我编的一个程序  初学数据结构
也不知具体错误在哪里
希望高手们能够给我详细解答
呵呵  将感激不尽哦
/* 相关库文件的使用 */
这是头文件:
 #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)


搜索更多相关主题的帖子: 数据结构 堆栈 
2009-11-23 17:38
快速回复:数据结构 串插入的表示与实现 (堆栈分配存储表示)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035234 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved