• 14 求链表的表长


    /*求表长*/
    #include<stdio.h>
    #include<stdlib.h>
    
    //链表中节点的结构
    typedef struct Link {
        int  data;
        struct Link* next;
    }link;
    
    //链表初始化
    link* initLink(link* phead) {
        link* first_node = (link*)malloc(sizeof(link));//创建第一个节点
        //第一个结点先初始化
        printf("请输入第一个结点的值:
    ");
        int firstNum = 0;
        scanf("%d", &firstNum);
        first_node->data = firstNum;
        first_node->next = NULL;
        phead = first_node;//头指针指向第一个节点
    
        //尾插入初始化赋值
        printf("输入若干个值保存到链表中:
    ");
        int num = 0;
        while (num != -1) { //-1代表结束
            scanf("%d", &num);
            link* new_node = (link*)malloc(sizeof(link)); //申请新的结点
            new_node->data = num;
            new_node->next = NULL;
            first_node->next = new_node;  //第一个结点的指针域指向这个新申请的结点
            first_node = new_node;  //第一个结点后移
        }
        printf("头指针指向的值是:%d
    ", phead->data);//1
        return phead;  //将指向第一个结点的头指针返回
    }
    
    
    void showLink(link* phead) {
        link* tmp = phead;
        while (tmp != NULL) {
            if (tmp->data == -1) {
                break;
            }
            printf("%d ", tmp->data);
            tmp = tmp->next;
        }
        printf("
    ");
    }
    
    
    //求链表的表长
    int getLinkLength(link* phead) {
        link* tmp = phead;
        int len = 0;
        while (tmp != NULL) {
            if (tmp->data == -1) {
                break;
            }
            len++;
            tmp = tmp->next;
        }
        return len;
    }
    
    
    void main() {
        link* myhead = NULL; //创建头指针
        myhead = initLink(myhead); //获得经过初始化后的头指针
        printf("初始化链表为:
    ");
        showLink(myhead);
        printf("表的长度是:%d
    ", getLinkLength(myhead));
    }
    

  • 相关阅读:
    MacOS install Maven
    MacOS install Nginx
    网站速度优化
    MacOS命令行计算文件hash值
    网站接入GoogleAnalytics步骤
    更换GitHub Pages博客主题
    那些让我相见恨晚的东西(持续更新)
    python 中的getattr(),setattr(),hasattr()的方法
    父往子传,子往父传,以及平行传值
    watch和computed
  • 原文地址:https://www.cnblogs.com/shanlu0000/p/12459811.html
Copyright © 2020-2023  润新知