#2
农民工2017-10-10 16:52
|
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define OVERFLOW 0
#define OK 1
#define ERROR 0
typedef int Status;
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode;//定义结构体
void mune();
int ClearList_L(LNode *L);
Status InitList_L(LNode *L);
Status CreateList_L(LNode *L,int n);//声明函数
Status InitList_L(LNode *L)
{
L=(LNode*)malloc(sizeof(LNode));
if(!L) return OVERFLOW;
L->next=NULL;
return OK;
}//初始化
Status CreateList_L(LNode *L,int n)
{
LNode *p;
int i;
if(!L) return ERROR;
if(L->next) ClearList_L(L);
for(i=n;i>0;--i)
{
p=(LNode*)malloc(sizeof(LNode));
printf("第%d个结点的数据为:\n",i);
scanf(" %d",&(p->data));
p->next=L->next;
L->next=p;
}
}
//创建
//遍历
//读取第i个元素
//插入
//删除
//求长度
int ClearList_L(LNode *L)
{
LNode *LNext;
while(L==NULL)
{
printf("链表为空!");
return 0;
}
while((L->next)!=NULL)
{
LNext=L->next;
free(L);
L=LNext;
printf("已清空!");
}
return 0;
}//清空
//销毁
void mune()
{
printf("请输入您选择的操作:\nr.创建\nt.遍历\ng.读取指定元素\ni.插入\nd.删除\nl.求长度\nc.清空\nx.退出程序\n");
}
//目录
int main()
{
int n;
char opp;
LNode *L;
if(!InitList_L(L)) printf("初始化失败!\n");
else printf("初始化成功!\n");
while(1)
{
mune();
scanf(" %c",&opp);
switch(opp)
{
case 'r':
{
printf("请输入创建结点个数:\n");
scanf(" %d",&n);
CreateList_L(L,n);
break;
}
case 't':break;
case 'g':break;
case 'i':break;
case 'd':break;
case 'l':break;
case 'c':ClearList_L(L);break;
case 'x':break;
default: printf("请重新输入!\n");
}
}
}
#include<stdlib.h>
#include<malloc.h>
#define OVERFLOW 0
#define OK 1
#define ERROR 0
typedef int Status;
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode;//定义结构体
void mune();
int ClearList_L(LNode *L);
Status InitList_L(LNode *L);
Status CreateList_L(LNode *L,int n);//声明函数
Status InitList_L(LNode *L)
{
L=(LNode*)malloc(sizeof(LNode));
if(!L) return OVERFLOW;
L->next=NULL;
return OK;
}//初始化
Status CreateList_L(LNode *L,int n)
{
LNode *p;
int i;
if(!L) return ERROR;
if(L->next) ClearList_L(L);
for(i=n;i>0;--i)
{
p=(LNode*)malloc(sizeof(LNode));
printf("第%d个结点的数据为:\n",i);
scanf(" %d",&(p->data));
p->next=L->next;
L->next=p;
}
}
//创建
//遍历
//读取第i个元素
//插入
//删除
//求长度
int ClearList_L(LNode *L)
{
LNode *LNext;
while(L==NULL)
{
printf("链表为空!");
return 0;
}
while((L->next)!=NULL)
{
LNext=L->next;
free(L);
L=LNext;
printf("已清空!");
}
return 0;
}//清空
//销毁
void mune()
{
printf("请输入您选择的操作:\nr.创建\nt.遍历\ng.读取指定元素\ni.插入\nd.删除\nl.求长度\nc.清空\nx.退出程序\n");
}
//目录
int main()
{
int n;
char opp;
LNode *L;
if(!InitList_L(L)) printf("初始化失败!\n");
else printf("初始化成功!\n");
while(1)
{
mune();
scanf(" %c",&opp);
switch(opp)
{
case 'r':
{
printf("请输入创建结点个数:\n");
scanf(" %d",&n);
CreateList_L(L,n);
break;
}
case 't':break;
case 'g':break;
case 'i':break;
case 'd':break;
case 'l':break;
case 'c':ClearList_L(L);break;
case 'x':break;
default: printf("请重新输入!\n");
}
}
}
这是一个链表操作程序,运行没问题,第一次输入"r"
只有本站会员才能查看附件,请 登录
或者运行"c",一样的结果。
调试也调试不出来,我用VC++6.0和CFree都试过了,不行啊!
先谢谢各位!
感谢!