单链表上查找算法的实现
#include <stdio.h>
#include <stdlib.h> typedef struct LinkNode //单链表节点结构的定义
{
int data;
struct LinkNode *next;
}LinkNode; void InitLinkList(LinkNode * &L)
{
/*单链表的初始化*/
L = (LinkNode*)malloc(sizeof(LinkNode));
L->next = NULL;
} void CreateLinkList(LinkNode *&L, int n,int *num)
{
/*采用尾插法创建单链表*/
LinkNode* r = L;
for (int i = ; i < n; ++i)
{
LinkNode * p =(LinkNode*)malloc(sizeof(LinkNode));
p->data = num[i];
p->next = r->next;
r->next = p;
r = p;
}
} int main(int argc, char const *argv[])
{
/*int n = 5;
int num[]={1,2,3,4,5};*/
int n, p;
int *num; scanf("%d",&n);
num =(int*)malloc(n*sizeof(int)); for (int i = ; i < n; ++i)
{
scanf("%d",&num[i]);
} scanf("%d",&p); LinkNode *L;
InitLinkList(L);
CreateLinkList(L,n,num); if (p>&&p<n)
{
printf("ok");
}
else
{
printf("error");
} return ;
}
注:实际上对于这道题,代码中好多部分都是多余的,亲测下面的代码也能AC
#include<stdio.h>
#include <stdlib.h>
int main()
{
int n,p;
int *num;
scanf("%d",&n);
num =(int*)malloc(n*sizeof(int));
for (int i = ; i < n; ++i)
{
scanf("%d",&num[i]);
}
scanf("%d",&p);
if (p<n&&n>)
{
printf("ok");
}
else
{
printf("error");
}
return ;
}