SWUST OJ(955)

单链表上查找算法的实现

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 typedef struct LinkNode //单链表节点结构的定义
 5 {
 6     int data;
 7     struct LinkNode *next;
 8 }LinkNode;
 9 
10 void InitLinkList(LinkNode * &L)
11 {
12     /*单链表的初始化*/
13     L = (LinkNode*)malloc(sizeof(LinkNode));
14     L->next = NULL;
15 }
16 
17 void CreateLinkList(LinkNode *&L, int n,int *num)
18 {
19     /*采用尾插法创建单链表*/
20     LinkNode* r = L;
21     for (int i = 0; i < n; ++i)
22     {
23         LinkNode * p =(LinkNode*)malloc(sizeof(LinkNode));
24         p->data = num[i];
25         p->next = r->next;
26         r->next = p;
27         r = p;
28     }
29 }
30 
31 
32 int main(int argc, char const *argv[])
33 {
34     /*int n = 5;
35     int num[]={1,2,3,4,5};*/
36     int n, p;
37     int *num;
38 
39     scanf("%d",&n);
40     num =(int*)malloc(n*sizeof(int));
41 
42     for (int i = 0; i < n; ++i)
43     {
44         scanf("%d",&num[i]);
45     }
46 
47     scanf("%d",&p);
48 
49     LinkNode *L;
50     InitLinkList(L);
51     CreateLinkList(L,n,num);
52 
53     if (p>0&&p<n)
54     {
55         printf("ok");
56     }
57     else
58     {
59         printf("error");
60     }
61     
62     return 0;
63 }

注:实际上对于这道题,代码中好多部分都是多余的,亲测下面的代码也能AC

 1 #include<stdio.h>
 2 #include <stdlib.h>
 3 int main()
 4 {
 5     int n,p;
 6     int *num;
 7     scanf("%d",&n);
 8     num =(int*)malloc(n*sizeof(int));
 9     for (int i = 0; i < n; ++i)
10     {
11         scanf("%d",&num[i]);
12     }
13     scanf("%d",&p);
14     if (p<n&&n>0)
15     {
16         printf("ok");
17     }
18     else
19     {
20         printf("error");
21     }
22     return 0;
23 } 

猜你喜欢

转载自www.cnblogs.com/Ghost4C-QH/p/10492202.html