最基础的顺序表问题
#if!define(DEF_LINKLIST)#define DEF_LINKLIST
typedef int ElemType;
typedef LNODE*LinkList;
typedef enum{ERROR,OK}status;
#include <stdio.h>
#include <conic.h>
#include <stdlib.h>
#define OK 1;
#define ERROR 0;
#define OVERFLOW 0;
void CreatList_L(Linklist &L,int n);
void GetElem_L(Linklist L,int a,int &e);
void ListInsert_L(Linklist &L,int c,int d);
void ListDelete(LinkList &L,int f,int &g);
typedef struct LNODE
{
int data;
struct LNODE *next;
}LNODE,*LinkList;
status InitList_L(LinkList &L) /*建立一个只含头结点的空表*/
{
L=(LinkList)malloc(sizeof(LNODE));
if (!L)
exit(OVERFLOW);
L->next=NULL;
return OK;
}
//////////////////////////////////////////////////////////////
void CreatList_L(LinkList&L,int n) /*建立含n个元素的链表*/
{
LinkList p,q;
int i;
printf("Input the data:");
q=L;
for(i=0,i<=n;i++)
{
p=(LinkList)malloc(sizeof(LNODE));
scanf("%d",&p->data);
p->next=q->next; /*新元素插入链表尾*/
q->next=p;
q=p;
}
return OK;
}
void GetElem_L(LinkListL,int a,int &e) /*查找第a个元素,并赋值给e*/
{
LinkList P;
int b;
P=L;
b=0;
while(P&&b<a) /*查找第a个元素*/
{
P=P->next;
++b;
}
if(!P||b>a)
return ERROR;
e=P->data; /*取出第a个元素给e*/
return OK;
}
void ListInsert_L(LinkList&L,int c,int d) /*在元素c前插入元素d*/
{
LinkList p,s;
int j;
p=L;
j=0;
while(p&&j<c-1) /*查找第c-1个结点*/
{
p=p->next;
++j;
}
if {!p||j>i-1}
return ERROR;
s=(LinkList)malloc(sizeof(LNODE)); /*申请一个新的结点*/
s->data=d;
s->next=p->next;
p->next=s;
return OK;
void ListDelete_L(LinkList&L,int f,int &g) /*删除第f个结点,并用g返回其值*/
{
LinkList p,q;
int m;
p=L;
m=0;
while (p->next&&m<f-1) /*找第f个结点,用p指向前一个*/
{
p=p->next;
++m;
}
if(!(p->next)||j>i-1)
return ERROR;
q=p->next; /*q指向第f个结点*/
p->next=q->next; /*删除第f个结点*/
g=q->data;
free(q);
return OK;
}
void TraverseList_L(LinkList L)
{
LinkList z
z=L->next;
while(p)
{
printf("%d",z->data);
z=z->next;
}
return OK;
}
////////////////////////////////////////////////////
void main()
{
int n,i,e,a,c,d,f,g;
LinkList L;
InitList_L(L);
printf("Input the length of the list L:");
scanf("%d",&n);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CreatList_L(L,n);
printf("output the datas:");
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
printf("Input the search location:");
scanf("%d",&i);
if(GetElem_L(L,a,e))
printf("The data in the location %d is %d\n",a,e);
else
printf("can't find the location!\n");
printf("output the data %d\n",e);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
printf("Input the insert location:");
scanf("%d",&i);
printf("Input the insert data:");
scanf("%d",&e);
if(ListInsert_L(L,c,d))
printf("output the data:%d\n",d);
else
printf("can't insert the data!");
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
printf("Input the delete location:);
scanf("%d",&i);
if (LinkDelete_L(L,f,g));
printf("output the data:%d"\n,g);
else
printf("can't find the delete data!\n");
}
头文件是这样的,然后就是对链表进行插入查找删除,但老是说标识符未找到!
是头文件的问题?但学的不好,求解,谢谢