搜索
查看: 1753|回复: 8
打印 上一主题 下一主题

请大家帮忙看看!! 多谢了

[复制链接]
跳转到指定楼层
楼主
发表于 2013-9-24 22:57:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
#define   LIST_INIT_SIZE    100
typedef   int * elem
typedef   int   length
typedef   int   listsize

typedef   struct   
{   
     int   num;
}SqList[LIST_INIT_SIZE];

void   InitList_Sq(SqList &L){
           L.elem=(ElemType * )malloc(LIST_INIT_SIZE * sizeof(ElemType))  
           if(! L.elem)exit(OVEROW)
           L.length=0;
           L.listsize=LIST_INIT_SIZE ;
           return ok;   
     }

void  insert(){
int newbase,q,p;
     ListInsert_Sq(SqList &L, int i, ElemType e){
           if(i<1 || i>L.length+1) return ERROR;
           if(L.length>=L.listsize){
                newbase=(ElemType * )realloc(L.elem,(L.listsize) * sizeof(ElemType));
                if(!newbase)exit(OVERFLOW);
                L.elem=newbase;
                          
           }     
           q=&(L.elem[i-1]);
           for(p=&(L.elem[L.length-1]); p>=q; --p)  *(p+1)=*p;
           
           *q=e;
           ++L.length;
           
           return ok;
     }
}
void   delect(){
int p,q;
     ListDelect_Sq(SqList &L, int i, ElemType &e){
          if((i<1)||(i>L.length)) return ERROR;
          p=&(L.elem[i-1]);
          e=*p;
          q=L.elem+L.length-1;
          for(++p;p<=q;++p) *(p-1)=*p;
          --L.length;
          return ok;      
       }
}
void   locate(){
     int i,p;
        int LocateElem_Sq(SqList L, ElemType e, Status(*compare)(ElemType, ElemType)){
           i=1;
           p=L.elem;
           while(i<L.length && (*compara)(*p++,e))  ++i;
           if(i<L.length);
           return  SqList[i].num;      
        }
}
void MergeList_Sq(SqList La,SqList Lb,SqList &Lc){
  int pc;
       pa=La.elem;  pb=Lb.elem;
       Lc.listsize=Lc.length=La.length+Lb.length;
       pc=Lc.elem=(ElemType * )malloc(Lc.listsize * sizeof(ElemType));
       if(!Lc.elem)exit(OVERFLOW);
       pa.last=La.elem+La.length-1;
       pb.last=Lb.elem+Lb.length-1;
       while(pa<=pa_last && pb<=pb_last){
          if(*pa<=*pb)  *pc++=*pa++;
          else  *pc++=*pb++;      
       }
       while(pa<=pa_last)  *pc++=*pa++;
       while(pb<=pb_last)  *pc++=*pb++;
    return Lc;
   }

void main()
{
int a,b,c,i;
    InitList_Sq();
    printf("请输入书本号:\n");
    for(i=0;i<L.length;i++)
    scanf("%d",&SqList[i].num);

   
    ptintf("请插入书本号:\n");
    scanf("%d",&a);
    insert();
   
    printf("请输入要删除的书本号:\n");
    scanf("%d",&b);
    delect();
   
    printf("请输入要查找的书本号:\n");
    scanf("%d",&c);
    locate();
   
    printf("合并后的线性表:\n");
    MergeList_Sq();

}

沙发
发表于 2013-9-24 23:05:01 | 只看该作者
本帖最后由 rosynirvana 于 2013-9-24 23:07 编辑

引用是C++的语法
如果你想说啊哈C编译不了,那是当然的

另外,你这是函数中嵌入了另一个函数的定义?
板凳
发表于 2013-9-26 21:11:39 | 只看该作者
果然  很是强大。
地板
发表于 2013-10-7 10:00:49 | 只看该作者
你用的是C++的写法。这可不是C语言,所以啊哈C编译不了。还是去弄个C的吧,汗·······
5#
发表于 2013-10-7 16:27:59 | 只看该作者
4399APPLE 发表于 2013-10-7 10:00
你用的是C++的写法。这可不是C语言,所以啊哈C编译不了。还是去弄个C的吧,汗·······

引用是C++的语法没错,但是函数里嵌套函数定义C++也编译不了啊……
6#
发表于 2013-10-7 17:13:39 | 只看该作者
所以它错了啊,和C++的写法是一样,但错了
引用是C++的语法没错,但是函数里嵌套函数定义C++也编译不了啊……
7#
发表于 2013-10-7 18:10:53 | 只看该作者
4399APPLE 发表于 2013-10-7 17:13
所以它错了啊,和C++的写法是一样,但错了

Your word, which implying that is a snippet of correct cpp code, is misleading.
8#
发表于 2013-10-7 21:07:29 | 只看该作者
我英语不好
9#
发表于 2013-10-13 12:34:43 | 只看该作者
rosynirvana 发表于 2013-10-7 18:10
Your word, which implying that is a snippet of correct cpp code, is misleading.

我英语不好
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表