| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 328 人关注过本帖
标题:大家帮看看,链表的,哪里出现了错误?
只看楼主 加入收藏
giggsshuai
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-11-22
结帖率:100%
收藏
 问题点数:0 回复次数:0 
大家帮看看,链表的,哪里出现了错误?
程序代码:
#include "stdio.h"
#include "stdlib.h"
#define ERROR 0
#define OK 0
typedef int Elemtype;
typedef int status;
typedef struct LNode{
 Elemtype date;
 struct LNode *next;
}LNode,*LinkList;
//建立链表
void CreateList(LinkList &L){
 LinkList p;int i,n;
 printf("请输入要建立链表的长度\n");
  scanf("%d",&n);
 L=(LinkList)malloc(sizeof(LNode));
 L->next=NULL;
 for(i=n;i>0;--i){
  p=(LinkList)malloc(sizeof(LNode));
  scanf("%d",&p->date);
  p->next=L->next;L->next=p;
 }
}
//输出链表
void PrintList(LinkList L){
 LinkList p;
 for(p=L->next;p;p=p->next)
  printf("%5d",p->date);
}
//在i位置插入元素e
status ListInsert(LinkList &L,int i,Elemtype e){
 LinkList p,s;int j;
 p=L;j=0;
 while(p&&j<i-1){p=p->next;++j;}
 if(!p||j>i-1)return ERROR;
 s=(LinkList)malloc(sizeof(LNode));
 s->date=e;s->next=p->next;
 p->next=s;
 return OK;
}
//删除第i个元素
status ListDelete(LinkList &L,int i,Elemtype &e){
 LinkList p,q;int j;
 p=L;j=0;
 while(p->next&&j<i-1){p=p->next;++j;}
 if(!(p->next)||j>i-1) return ERROR;
 q=p->next;p->next=q->next;
 e=q->date;free(q);
 return OK;
}
void main(){
 LinkList L;Elemtype e;int i,n;
 CreateList(L);
 PrintList(L);
 printf("\n输入1则插入元素,输入2则删除元素\n");
 scanf("%d",&n);
 switch(n){
 case 1:
  printf("请输入要插入元素的位置");scanf("%d",&i);
  printf("请输入要插入的元素");scanf("%d",&e);
  ListInsert(L,i,e);
  PrintList(L);break;
 case 2:
  printf("请输入要删除元素的位置");scanf("%d",&i);
  ListDelete(L,i,e);
  PrintList(L);}
} 
怎么不能 执行?
搜索更多相关主题的帖子: 链表 
2010-01-11 22:41
快速回复:大家帮看看,链表的,哪里出现了错误?
数据加载中...
 
   



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

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