zoukankan      html  css  js  c++  java
  • 链表

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include<stdlib.h>
    #include<string.h>

    #define SIZE 45
    typedef struct film
    {
    char tit[SIZE];
    int rating;
    struct film *next;

    } List;


    int main(){
    List * head = NULL;
    List *prev = NULL, *current = NULL;
    char input[SIZE];

    puts("输入电影的名称");
    while (gets(input) != NULL&&input[0]!='')
    //当输入不是空或者回车,开辟出一个结构体的大小
    {
    //current 指针 指向开辟出的malloc的空间
    current = (List*)malloc(sizeof(List));
    //结构体指针head head开始为null
    if (head == NULL)
    //将current指针指向的地址赋值给head
    head = current;//创建链表的头

    else{
    prev->next = current;//将current所开辟的新的空间地址赋值给prev->next,就是上一个的
    //指尾部
    }
    //struct film *next;
    //current所指的结构体中的next又开辟了一个结构体,作为下一个的结构体
    current->next = NULL;
    //将input里面的内容拷贝到current所指的结构体里面的tit里面
    strcpy(current->tit, input);

    puts("输入评分");
    scanf("%d", &current->rating);
    if (getchar() == 'q')
    break;
    puts("输入下一部电影");
    //将current的指针地址赋值给prev
    prev = current;
    //将current变成空指针
    current = NULL;
    }
    //head为null证明没有输入数据
    if (head == NULL)
    printf("没有数据输入 ");
    else
    //有数据输入
    printf("今年你看过的电影有: ");
    //将current重新指向开头的位置
    current = head;
    //current!=null证明这个结构体不是空
    while (current != NULL){

    printf("电影名称:%s 分数:%d ", current->tit, current->rating);
    //指向下一个结构体
    current = current->next;
    }

    //再次将current指针指向链表头部
    head = current;
    while (current != NULL){
    //释放所有malloc出来的结构体空间
    free(head);
    current = current->next;
    }
    system("pause");
    return 0;
    }

  • 相关阅读:
    任意用户密码重置漏洞
    0基础入门学习Python(第4章)
    dpwwn:2 Vulnhub Walkthrough
    The Library:2 Vulnhub Walkthrough
    WestWild: 1.1: Vulnhub Walkthorugh
    Canvas---折线图---绘制网格
    Canvas---绘制一个由黑到白渐变的矩形
    Canvas---绘制虚线
    Canvas---和线相关的属性和方法
    Canvas---绘制一个镂空正方形
  • 原文地址:https://www.cnblogs.com/liaoxianfu/p/6285356.html
Copyright © 2011-2022 走看看