数据结构:链表实现《人口普查管理系统》小案例

1、《人口普查管理系统》小案例介绍

《人口普查管理系统》小案例的项目简介:

人口普查管理系统是一个用于收集、管理和分析人口普查数据的软件系统。该系统的目标是提供准确、及时的人口数据,以支持决策制定、规划和资源分配等工作。在应用上该系统可以方便地添加、查找、更新和删除人口数据,支持人口数据的实时更新和维护。

   

训练知识点:

【1】链表的数据结构的定义

【2】链表的数据存储方式

【3】链表数据的读写操作

为了学习上的方便,我们不定义过多的字段,只包含id(身份证号)和name(姓名)。为了提高大家的熟练度和巩固链表的知识点,初学者可以按照步骤跟着我做,先不用考虑优化等之类的问题,先做到熟能生巧这一步。

步骤1:引入相关库文件;定义数据结构

#include <stdio.h>

#include <stdlib.h>

typedef struct Person{

    char *id;   //身份证号

    char *name; //姓名

    struct Person *next;

} Node;

//定义3个数据指针节点p1、p2、p3

//定义头指针head和用于运算的自由指针p

Node *p1 ,*p2 ,*p3 , *head ,*p;

步骤2:数据的新增操作

//新增人口数据,并生成链表

void addPerson(){

    p1 = (Node*)malloc(sizeof(Node));

    p2 = (Node*)malloc(sizeof(Node));

    p3 = (Node*)malloc(sizeof(Node));

    p1->id = "p001"; p1->name = "lily1";

    p2->id = "p002"; p2->name = "lily2";

    p3->id = "p003"; p3->name = "lily3";

    //2、生成链表

    head = p1;

    p1->next = p2;

    p2->next = p3;

    p3->next = NULL;

}

步骤3:展现人口数据

//查询所有的人口数据

void personList(){

    p = head;

    while(!= NULL){

      printf("%s,%s\n",p->id,p->name);

      p = p->next;

    }

}

步骤4:删除人口数据

//删除1条数据

void deletePerson(){

  Node *q;

  p = p2;

  q = p->next;

  p->next = q->next;

  free(q);

}

步骤5:主函数关联操作

int main(void)

{

    printf("Persons list:\n");

    //新增数据

    addPerson();

    //展现新增的数据

    personList();

    printf("Delete 1 person:\n");

    //删除一条数据

    deletePerson();

    personList();

    return 0;

}

完整的参考代码如下所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数字化与智能化

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值