免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1027 | 回复: 2
打印 上一主题 下一主题

c #include编译通不过 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-08 15:04 |只看该作者 |倒序浏览
各位大虾:
    我用了一段代码,经运行无误。但是目标代码比较长。为了减小一点,我把
前面的函数移到一个linklist.h头文件,然后#include “linklist.h”,可编译通不过。
   我将linklist.h文件放在安装DEV C++/include目录下面的:出错信息为:
4 C:\Dev-Cpp\include\LinkList.cpp
In file included from C:/Dev-Cpp/include/LinkList.cpp

我将include改成#include <linklist.h>;
仍然抱这个错;
我很郁闷,请各位救命啊!!!!!!!!!!!!!!!
(主调文件:linklist.cpp
  头文件:linklist.h
存放路径c:/Dev-cpp/include/

论坛徽章:
0
2 [报告]
发表于 2004-11-08 15:05 |只看该作者

c #include编译通不过

以下是头文件:

typedef char ElemType;
typedef struct node   
{    ElemType data;
     struct node *next;
}lnode;

typedef lnode *LinkList;


void init(LinkList &L)
{
L=(linklist)malloc(sizeof(lnode));
if(!L) printf("分配内存出错!";
else L->;next=NULL;
}
int empty(LinkList L)
{ if (L->;next==NULL)  return(1);
  else return(0);
}

int length(LinkList L)  
{   LinkList p=L->;next;
    int len=0;
        while(p)
    {
        p=p->;next;
        len++;};
   return(len);
}

lnode getnode(LinkList L,int pos)  
{
    lnode e;
    LinkList p=L;
    int cur_pos=0;
    if(pos<1||pos>;length(L)) exit(1);
  while(p&&cur_pos<pos)
  {p=p->;next;
   cur_pos++;};
   e=*p;
   return(e);
}

void delnode(LinkList L,int pos)
{
    LinkList p=L;
    int cur_pos=0;
if(pos<1||pos>;length(L)) {printf("输入位置有错!";exit(0);};
  while(p&&cur_pos<pos-1)
  {p=p->;next;
   cur_pos++;};
p->;next=p->;next->;next;
}
void clear(LinkList L)
{
    LinkList p=l->;next;
    while(p)
    {l->;next=p->;next;
        free(p);
    p=l->;next; };
   
}
void destory(LinkList L)
{   
   LinkList p=l;
  while(p)
  { l=p->;next;
    free(p);
    p=l;};
   
  }
lnode prior(LinkList L,int pos)
{

    return(getnode(L,pos-1));
}
lnode next(LinkList L,int pos)
{
    return(getnode(L,pos+1));
}

void print(LinkList L)
{
    LinkList p=L->;next;
    while(p)
    { printf("%c",p->;data);
      p=p->;next;};  
  
    printf("\n";
}
void insert(LinkList L,int pos,elemtype x)
{
    LinkList s,p=L;
    int cur_pos=0;
    if(pos<1||pos>;length(L)+1) {printf("插入位置有错!";getch();exit(1); };
  while(p&&cur_pos<pos-1)
  {p=p->;next;
   cur_pos++;};
s=(LinkList)maLLoc(sizeof(Lnode));
s->;data=x;
s->;next=p->;next;
p->;next=s;
}

论坛徽章:
0
3 [报告]
发表于 2004-11-08 15:06 |只看该作者

c #include编译通不过

以下是目标文件:
#include "stdio.h"
#include "conio.h"
#include "malloc.h"
#include "LinkList.h"
main()
{
  LinkList L;

  char ch,x;
  int pos,pos1,pos2,i=1;
init(L);
printf("***************************链表演示程序********************\n";
  printf("请输入用来建立链表的字符,输入?表示输入完毕:\n";
  ch=getchar();
  while(ch!='?')
  { insert(L,i,ch);
    ch=getchar();
   i++;
   };  
printf("**********************您建立的链表为:";
print(L);
printf("**********************判断此链表是否非空:";  
if(empty(L)) printf("空!\n";
  else      printf("非空!\n";
printf("**********************您输入的链表长度为:%d",length(L));
printf("\n";
printf("*********请输入你想取得的元素位置(1=<位置<=%d):",length(L));
scanf("%d",&pos);
printf("第%d个元素为%c\n",pos,getnode(L,pos).data);
fflush(stdin);
printf("*******请输入需要插入的元素以及位置,输入时用逗号隔开:";
scanf("%c,%d",&x,&pos1);
insert(L,pos1,x);
printf("*************插入后新的链表如下:";
print(L);
printf("**********************请输入你想删除的元素位置:";
fflush(stdin);
scanf("%d",&pos2);
delnode(L,pos2);
printf("**********************删除后新的链表如下:");
print(L);
printf("****欢迎您和菜鸟一起共同进步,QQ558064!*****");
getch();
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP