首页 > 其他 > 详细

11 按值定位

时间:2020-03-11 00:09:53      阅读:72      评论:0      收藏:0      [点我收藏+]

根据用户输入的元素,查找这个元素在链表中是第几个

 1 /*按值定位*/
 2 
 3 #include<stdio.h>
 4 #include<stdlib.h>
 5 
 6 //链表中节点的结构
 7 typedef struct Link {
 8     int  data;
 9     struct Link* next;
10 }link;
11 
12 //链表初始化
13 link* initByTailInsert() {
14     link* phead = NULL;//创建头指针
15     link* first_node = (link*)malloc(sizeof(link));//创建第一个节点
16     //第一个结点先初始化
17     first_node->data = 1;
18     first_node->next = NULL;
19     phead = first_node;//头指针指向第一个节点
20 
21     //尾插入赋值
22     for (int i = 2; i < 5; i++) {
23         link* new_node = (link*)malloc(sizeof(link)); //申请新的结点
24         new_node->data = i;
25         new_node->next = NULL;
26         first_node->next = new_node;  //第一个结点的指针域指向这个新申请的结点
27         first_node = new_node;  //第一个结点后移
28     }
29 
30     printf("头指针指向的值是:%d\n", phead->data);//1
31     return phead;  //将指向第一个结点的头指针返回
32 }
33 
34 
35 
36 void showLink(link* phead) {
37     link* tmp = phead;//将头指针赋给tmp,tmp也是一个头指针
38     //只要tmp指针指向的结点的next不是Null,就执行输出语句。
39     while (tmp != NULL) {
40         printf("%d ", tmp->data);
41         tmp = tmp->next;
42     }
43     printf("\n");
44 }
45 
46 //按值查找
47 link* getElemByVal(link* phead, int value) {
48     link* tmp = phead;//将头指针赋给tmp,tmp也是一个头指针
49     while (tmp != NULL) {
50         //printf("%d ", tmp->data);
51         if (tmp->data == value) {
52             return tmp;
53         }
54 
55         tmp = tmp->next;
56     }
57     //printf("没有这个元素\n");
58     return NULL;
59 
60 }
61 
62 
63 void main() {
64     //初始化链表(1,2,3,4)
65     printf("初始化链表为:\n");
66     link* phead = initByTailInsert(); //创建头指针,得到经过初始化后的头指针
67     showLink(phead);
68 
69     int value = 0;
70     printf("请输入需要查找的值:");
71     scanf("%d", &value);
72     link* isfind = getElemByVal(phead, value);
73     if (isfind != NULL) {
74         printf("这个元素是第%d个元素\n", value,isfind->data);
75     }
76     else {
77         printf("没找到这个元素\n");
78     }
79    
80 
81 }

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

11 按值定位

原文:https://www.cnblogs.com/shanlu0000/p/12459461.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!