• 13 返回特定数据域的结点个数


    1,首先将链表初始值改为用户的输入

    2,根据用户的输入,打印出初始化后的链表

    3,用户继续输入希望寻找的值

    4,根据这个值在链表中寻找数据域是这个值的结点,并计数,最后返回满足条件的结点个数

     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     int input_data = 0; //用户输入的值
    22 
    23     //尾插入赋值
    24     printf("请输入4个整数:");
    25     for (int i = 2; i < 6; i++) {
    26         link* new_node = (link*)malloc(sizeof(link)); //申请新的结点
    27 
    28         //new_node->data = i;
    29         scanf("%d", &input_data);
    30         new_node->data = input_data;
    31 
    32         new_node->next = NULL;
    33         first_node->next = new_node;  //第一个结点的指针域指向这个新申请的结点
    34         first_node = new_node;  //第一个结点后移
    35     }
    36 
    37     //printf("头指针指向的值是:%d
    ", phead->data);//1
    38     return phead;  //将指向第一个结点的头指针返回
    39 }
    40 
    41 
    42 
    43 void showLink(link* phead) {
    44     link* tmp = phead;//将头指针赋给tmp,tmp也是一个头指针
    45     //只要tmp指针指向的结点的next不是Null,就执行输出语句。
    46     while (tmp != NULL) {
    47         printf("%d ", tmp->data);
    48         tmp = tmp->next;
    49     }
    50     printf("
    ");
    51 }
    52 
    53 //返回特定数据域值的结点个数
    54 int count(link* phead, int value) {
    55     link* tmp = phead;
    56     int count = 0;
    57     while (tmp != NULL) {
    58         if (tmp->data == value) {
    59             count++;
    60         }
    61         tmp = tmp->next;
    62     }
    63     return count;
    64 }
    65 
    66 void main() {
    67     //初始化链表(1,2,3,4)
    68     printf("初始化链表为:
    ");
    69     link* phead = initByTailInsert(); //创建头指针,得到经过初始化后的头指针
    70     showLink(phead);
    71     int value = 0;
    72     printf("请输入要寻找的元素:");
    73     scanf("%d", &value);
    74     printf("数据域是%d的结点个数是:%d
    ", value,count(phead, value));
    75     
    76 }

     

  • 相关阅读:
    Linux netstat命令详解
    【转】Jenkins怎么启动和停止服务
    Jenkins权限配置失误后导致登录失败的解决办法
    Linux下查看某一进程所占用内存的方法
    Linux集群配置ntp时间同步服务
    Linux下安装MySQL数据库
    Redis集群的部署
    Linux下安装Nginx服务器
    为Linux服务器设置静态IP的方法
    vSphere Client无法连接到服务器 出现未知错误的解决方法
  • 原文地址:https://www.cnblogs.com/shanlu0000/p/12459788.html
Copyright © 2020-2023  润新知