单链表查找位序
# include<stdio.h># include<malloc.h>
#define OK 1
#define ERROR 0
typedef int ElemType;
typedef int status;
typedef struct LNode //定义一个结构体类型
{ ElemType data; //节点的数据域
struct LNode *next; //节点的指针域
}LNode,*LinkList; //LNode是结构体的名字,LinlList为指向结构体LNode的指针类型
status creat_L(LinkList &L)
{ LinkList p; int i,n;
L=(LNode *)malloc(sizeof(LNode)); //分配一个动态地址
L->next=NULL; //先建立一个带头结点的空链表,并且将最后一个节点的指针域置空
printf("Inpue the element number:");
scanf("%d",&n);
printf("Inpue the element value reversing:\n");
for (i=n;i>0;--i)
{ p=(LNode *)malloc(sizeof(LNode));
scanf("%d",&p->data);
p->next=L->next;
L->next=p; }
printf("The linklist as follow:\n");
printf("L->");
p=L->next;
for (i=0;i<n;++i)
{ printf("%d->",p->data);
p=p->next;
}
printf("\n");
return OK;
}
void get_len(LinkList L)
{
int len=0;
LinkList p;
p=L->next; //初始化,p指向首元节点
while(p)
{
len++;
p=p->next;
}
printf("此单链表的长度是%d\n",len);
}
void LocateElem(LinkList L,ElemType e)
{
//查找位序
LinkList p;
int n=0;
p=L->next;
while(p->data!=e)
{
n++;
p=p->next;
}
printf("此数据元素的位序是%d\n",n);
}
int main()
{
int x;
LinkList sq;
creat_L(sq);
get_len(sq);
printf("请输入要查找的值\n");
scanf("%d",x);
LocateElem(sq,x);
return 0;
}
程序运行不了,求指教!!!