一个数据结构题,请大家帮忙看看。过两天要交实验报告的。谢谢了

时间:2021-09-11 10:44:34
#include <stdio.h>
#include <malloc.h>
#define true  1
#define false  0
#define ok  1
#define error  0
#define overflow  -2
typedef int status;
typedef char Elemtype;
#define List_Init_Size  20
#define ListIncrement  5
typedef struct LNode{
ElemType data;
struct LNode *next;
int length;
int j;
int Listsize;
LNode *q;
}LinkList;
status InitList_L(LinkList &L)
{
L==(LNode*)malloc(sizeof(LNode));
L->next=NULL;
return ok;
}
status ListDestory_L(LinkList &L){
while(L->next!=NULL)
{q=L->next;
free(L);
L=q;
}
}
status ListEmpty_L(LinkList L){
if(L->next==NULL)
return true;
else return false;
}
status clearList_L(LinkList &L){
while(L_>next!=NULL)
{L->next=NULL;
L=L->next;
}
status GetElem_L(LinkList  L,int i,Elemtype &e)
//{ if (i<1 || i>L.length(L))
// return error;
//q=L->next;j=1;
//while(j<i)
//{
//q=q->next;j++;
//}
//e=q->data;
//return ok;
//}
{ LNode *p;
p=L->next;j=1;
while(p&&j<i)
{p=p->next;++j;
}
if(!p||j<i)
return error;
e=p->data;
return ok;
}

status ListInsert_L(LinkList &L,int i,ElemType e){
LNode *p; j=0;
p=L;
while(p&&j<i-1){
p=p->next;++j;
if(!p||j>i-1)
return error;
Elemtype &s;(LNode *s;)
s=(LinkList)malloc(sizeof(LNode));
s->data=e;s->next=p->next;
    p->next=s;
return ok;
}
status ListDelete_L(LinkList &L,int i,Elemtype &e)
{LNode *p;
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->data;
free(q);
return ok;
}
status Listlength_L(LinkList L)
{
q=L;j=0;
while(q->next!=NULL){q=q->next;j++;}
return j;
}
void CreatList_L(LinkList&L,int n){
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
for(i=n;i>0;--i)
{p=(LinkList)malloc(sizeof(LNode));
scanf(&p->data);
p->next=L->next;L->next=p;
}
}

void main()
{
LinkList L;
Elemtype ch;
printf("(1)初始化链式表L\n");
InitList_L(L);
printf("(2)释放链式表L\n");
DestroyList_L(L);
printf("(3)链式表L为%s\n",(ListEmpty_L(L)?"空":"非空"));
    printf("(4)将链式表L置为空表\n")
     clearList_L(L);
printf("(5)链式表L的第2个元素=%c\n",ch);
GetElem_L(L,2,ch);
printf("(6)在第5个元素位置上插入e元素\n");
ListInsert_L(L,5,'e');
printf("(7)删除L的第3个元素\n");
     ListDelete_sq(L,3,ch);
printf("(8)链表L的长度=%d\n",ListLength_L(L));
printf("(9)依次采用逆位序法插入a,b,c,d,元素\n");
ListInsert_L (L,1,'a');
ListInsert_L (L,2,'b');
ListInsert_L (L,3,'c');
ListInsert_L (L,4,'d');
printf("(10)输出链式表L:");
PrintList_L(L);
}







8 个解决方案

#1


不知所谓。。。LZ白来了

#2


哥们,你的问题是什么啊

#3


status InitList_L(LinkList &L)
{
L==(LNode*)malloc(sizeof(LNode));
L->next=NULL;
return ok;

蛮乱搞的

#4


风格很象某本书..

#5


你要干什么啊?
以后贴代码的时候能不能带上格式啊?

#6


!!!!!!!!!!!!!!!!!!!!!!
这个程序不能运行。
运用链式线性表的基本操作。
里面有好几个error
麻烦大家帮忙看看
谢谢

#7


我运行了下,好多一般性的错误,变量没定义,变量前后不一致,第一个错误
ElemType data; 没定义ElemType 

#8


c++ primer ?

#1


不知所谓。。。LZ白来了

#2


哥们,你的问题是什么啊

#3


status InitList_L(LinkList &L)
{
L==(LNode*)malloc(sizeof(LNode));
L->next=NULL;
return ok;

蛮乱搞的

#4


风格很象某本书..

#5


你要干什么啊?
以后贴代码的时候能不能带上格式啊?

#6


!!!!!!!!!!!!!!!!!!!!!!
这个程序不能运行。
运用链式线性表的基本操作。
里面有好几个error
麻烦大家帮忙看看
谢谢

#7


我运行了下,好多一般性的错误,变量没定义,变量前后不一致,第一个错误
ElemType data; 没定义ElemType 

#8


c++ primer ?