c语言,求节点位置

来源:百度知道 编辑:UC知道 时间:2024/05/26 23:34:17
#define NULL 0
typedef int ElemType;
typedef struct node
{
ElemType data;
struct node *next;
}Lnode;
Lnode *head;

void insert(ElemType x,int i)
{
int j=1;
Lnode *s,*q;
s=(Lnode *)malloc(sizeof(Lnode));
s->data=x;
q=head;
if(i==1)
{
s->next=q;
head=s;
}
else
{
while((j<i-1)&&(q->next!=NULL))
{
q=q->next;
j++;
}
if(j==i-1)
{
s->next=q->next;
q->next=s;
}
else
printf("位置参数不正确!");
}
}

int locate(Lnode *p,ElemType x)
{
int n=0;
Lnode *q=p;
while(q!=NULL && q->data!=x)
{
q=q->next;
n++;
}
if(q=NULL)
{
return(-1);
}
else
{
return(n+1);
}
}

main()
{
Lnode *q;
int d,i,n,select,k,flag;

scanf("%d",d);
忘加&了

#include <string.h>
#include <stdio.h>
#include <stdlib.h>//加入三个头文件,删除#DEFINE NULL 0
typedef int ElemType;
typedef struct node
{
ElemType data;
struct node *next;
}Lnode;
Lnode *head;

void insert(ElemType x,int i)
{
int j=1;
Lnode *s,*q;
s=(Lnode *)malloc(sizeof(Lnode));
s->data=x;
q=head;
if(i==1)
{
s->next=q;
head=s;
}
else
{
while((j<i-1)&&(q->next!=NULL))
{
q=q->next;
j++;
}
if(j==i-1)
{
s->next=q->next;
q->next=s;
}
else
printf("位置参数不正确!");
}
}

int locate(Lnode *p,ElemType x)
{
int n=0;
Lnode *q=p;
while(q!=NULL && q->data!=x)
{
q=q->next;
n++;
}
if(q=NULL)
{
return(-1)