| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 693 人关注过本帖
标题:帮忙翻译一段程序,多谢了!
取消只看楼主 加入收藏
xiaojingling
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-9-19
收藏
 问题点数:0 回复次数:2 
帮忙翻译一段程序,多谢了!
本人学识尚浅  有一些函数还不认识  请高手帮帮忙  周日就急需完成!  多谢了 (格式类似下面第四行)

#include<stdio.h>            
#include<malloc.h>            
#include<conio.h>
#define ERROR 0               “定义ERROR为0”
#define OK 1                  
#define EQUAL 1               
#define OVERFLOW -1            
#define LIST_INIT_SIZE 100      
#define LISTINCREMENT 10        
typedef char ElemType;         

typedef struct
{
  ElemType *elem;
  int length;
  int listsize;
}sqlist;
int init(sqlist *L)
{
  L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
  if(!L->elem) exit(OVERFLOW);
  L->length=0;
  L->listsize=LIST_INIT_SIZE;
  return OK;
}
int ListLength(sqlist *L)
{
  return L->length;
}

void GetElem(sqlist L,int i,ElemType *e)
{
  *e=L.elem[i];
}

int EqualList(ElemType *e1,ElemType *e2)
{
  if (e1==e2)
    return 1;
  else
    return 0;
}

int Less_EqualList(ElemType *e1,ElemType *e2)
{
  if (e1<e2)
    return 1;
  else
    return 0;
}
int LocateElem(sqlist *La,ElemType e,int type)
{
  int i;
  switch (type)
    {
      case EQUAL:
    for(i=0;i<La->length;i++)
      if(EqualList(&La->elem[i],&e))
        return 1;
    break;
      default:
    break;
    }
  return 0;
}

void MergeList(sqlist *La,sqlist *Lb,sqlist *Lc)
{
  ElemType *pa,*pb,*pc,*pa_last,*pb_last;
  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(Less_EqualList(pa,pb))   *pc++=*pa++;
      else *pc++=*pb++;
    }
  while(pa<=pa_last) *pc++=*pa++;
  while(pb<=pb_last) *pc++=*pb++;
}

void UnionList(sqlist *La, sqlist *Lb)
{
  int La_len,Lb_len;
  int i;
  ElemType e;

  La_len=ListLength(La);  Lb_len=ListLength(Lb);
  for(i=0;i<Lb_len;i++)
    {
      GetElem(*Lb,i,&e);
      if(!LocateElem(La,e,EQUAL))
    ListInsert(La,++La_len,e);
    }

}

int ListInsert(sqlist *L,int i,ElemType e)
{
  ElemType *p,*q;
  if (i<1||i>L->length+1) return ERROR;
  q=&(L->elem[i-1]);
  for(p=&L->elem[L->length-1];p>=q;--p)
    *(p+1)=*p;
  *q=e;
  ++L->length;
  return OK;
}/*ListInsert Before i */
int listdelet(sqlist *l,int i,ElemType *e)
{
   ElemType  *p,*q;
    if ((i<1)||(i>l->length))  return 0;
    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;
}
int printlist(sqlist L)
{
  int i;

  for(i=0;i<L.length;i++)
      printf("%c\t",L.elem[i]);
  printf("\n");
}



main()
{
  ElemType e;
  sqlist La,Lb,Lc;

  clrscr();

  printf("\n\n-------------------List Demo is running...----------------\n\n");
  printf("First is InsertList function.\n");
  init(&La);
  e='a';
  ListInsert(&La,1,e);
  e='b';
  ListInsert(&La,2,e);

  printlist(La);
  printf("List A length now is  %d.\n\n",La.length);
  getch();

  e='f';
  ListInsert(&La,3,e);
   e='9';
   ListInsert(&La,4,e);
  printlist(La);
  listdelet(&La,4,&e);
  printf("\n\n%c\n\n",e);
  printlist(La);
  printf("List A length now is  %d.\n\n",La.length);
  getch();

  init(&Lb);

  e='A';
  ListInsert(&Lb,1,e);
  e='C';
  ListInsert(&Lb,2,e);

  e='F';
  ListInsert(&Lb,3,e);

  printlist(Lb);
  printf("List B length now is  %d.\n\n",Lb.length);
  getch();

  MergeList(&La,&Lb,&Lc);
  printlist(Lc);
  getch();

  printf("Second is UnionList function.\n");
  printf("Now union List A and List B.....\n");
  UnionList(&La,&Lb);
  printlist(La);
  printf("List A length now is  %d.\n\n",La.length);
  getch();

}

搜索更多相关主题的帖子: 翻译 
2008-09-19 14:53
xiaojingling
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-9-19
收藏
得分:0 
回复 2# shade1220 的帖子
是线性表问题   刚学数据结构 啥都不懂   弄得我脑袋都大了   哪为高手帮忙翻译一下呀  谢谢了
2008-09-19 15:08
xiaojingling
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-9-19
收藏
得分:0 
回复 4# StarWing83 的帖子
解释一下也行  急死我了
2008-09-19 15:17
快速回复:帮忙翻译一段程序,多谢了!
数据加载中...
 
   



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

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