用链式存储结构设计算法,要求已知某结点元素值,返回对应结点的指针,可以参考下面函数声明形式。
函数: LinkList * getAdd(LinkList * L,DataType X )
我自己写的一直报错,求修改
#include <stdio.h>
#include <stdlib.h>
typedef int Status;
typedef int DataType;
typedef struct Node{
DataType data;
struct Node *next;
}Node;
typedef struct Node *LinkList;
void CreateListHead(LinkList *L,int m[],int n){
LinkList p;
int i;
*L=(LinkList)malloc(sizeof(Node));
(*L)->next=NULL;
for(i=0;i<n;i++){
p=(LinkList)malloc(sizeof(Node));
p->data=m[i];
p->next=(*L)->next;
(*L)->next=p;
}
}
LinkList* getAdd(LinkList *L,DataType X)
{
LinkList *t = L;
while(t != NULL)
{
if(t->data == X)
return t;
t = t->next;
}
return NULL;
}
int main(){
LinkList L;
int i,k,j,n,e,m[1000];
printf("请输入要存储元素的总个数:");
scanf("%d",&n);
printf("请输入各个元素的值:");
for(i=0;i<n;i++){
scanf("%d",&m[i]);
}
CreateListHead(L,m,n);
LinkList temp=getAdd(L, 2);
printf("%d",temp->data);
return 0;
}