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;
    }

  • 相关阅读:
    第二次结对编程作业
    第5组 团队展示
    第一次结对编程作业
    BETA 版冲刺前准备(团队)
    项目测评(团队)
    1111111111
    Alpha 事后诸葛亮
    Alpha 冲刺 (10/10)
    Alpha 冲刺 (9/10)
    Alpha 冲刺 (8/10)
  • 原文地址:https://www.cnblogs.com/liaoxianfu/p/6285356.html
Copyright © 2011-2022 走看看