• 12 按号定位


    根据用户输入的号码,找到这个号码对应的值

     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
    ", 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("
    ");
    44 }
    45 
    46 link* getElemByNum(link* phead,int num) {
    47     int j = 1; //计数器
    48     link* tmp = phead;
    49     while (tmp != NULL && num>j) {
    50         tmp = tmp->next;
    51         j++;
    52     }
    53     if (tmp == NULL || num<j) {
    54         //printf("这个元素不存在
    ");
    55         return NULL;
    56     }
    57     else {
    58         return tmp;
    59     }
    60 }
    61 
    62 void main() {
    63     //初始化链表(1,2,3,4)
    64     printf("初始化链表为:
    ");
    65     link* phead = initByTailInsert(); //创建头指针,得到经过初始化后的头指针
    66     showLink(phead);
    67     int num = 0;
    68     printf("请输入要查找的号码:");
    69     scanf("%d", &num);
    70     link* isfind = getElemByNum(phead, num);
    71     if (isfind != NULL) {
    72         printf("第%d个元素是:%d", num, isfind->data);
    73     }
    74     else {
    75         printf("这个元素没找到
    ");
    76     }
    77   
    78 }

     

     

     

    getElemByNum ,按号查找的方法中,对于循环控制条件和 if 判断条件 是 试出来的。。。。

  • 相关阅读:
    静态初始化块和main方法哪个先被执行?
    Java中的构造方法
    Java中的局部变量、成员变量和静态变量
    经典算法冒泡排序java版
    Java里数组的三种初始化方式
    聊天,发朋友圈可以不打字,但是表情怎么能少呢?那么如何用win10自带的微软拼音输入法打出表情呢?
    java打印实心10*10正方形, 空心10*10正方形
    安卓工程目录
    (1)开源中国android客户端源码分析
    认识电脑的开机流程与主引导分区(MBR)
  • 原文地址:https://www.cnblogs.com/shanlu0000/p/12459701.html
Copyright © 2020-2023  润新知