80.链表-由来
链表是怎么发展来的
线性表:是n个具有相同特性的数据元素的有限序列。
链表:具有线性存储结构的线性表。
为什么需要使用链表?(链表是如何被设计出来的)
程序开发最重要的部分是如何在项目程序中找到一种合适的、好的数据表示方法,这样可以让程序设计起来更容易,数据处理算法更为简单。
C语言的内置数据类型有:简单变量、数组、指针、结构体、联合、枚举等。
找到正确的数据表示方法不仅是选择一种数据类型,而是要考虑进行哪些数据操作,要确定如何存储数据,如何访问数据,如何为数据类型定义有效的操作(增删查改)。
举例:创建通讯录
思考 应该使用什么数据形式存储信息?
由于通讯录的每个人的个人信息有多种,所以使用结构体来表示比较合适。
如何表示多个人?用结构体数组、动态数组还是其他形式。
每个人是否要按照首字母顺序排列?是否要用名字来查找通讯录里的人?
程序设计的需求(行为或操作将影响如何存储信息)
程序举例:
编写一个程序,输入某组织人员的名字和年龄(有多种信息),先从简单的开始。
#include <stdio.h>
#include <string.h>#define PNUM 100 //总人数
#define NAME_SIZE 20//人名字符大小typedef struct peoplecard
{char name[NAME_SIZE];int age;
}char* manage_gets(char str[],int len_limt);
int main(void)
{peoplecard peol[PNUM];//定义组织人员结构体数组int i,j;puts(“Enter first peol name”);//输入第一个人员的名字while((i < PNUM)&&( manage_gets(peol[i].name, NAME_SIZE)!=NULL) &&( peol[i].name[0]!=’\0’)){puts(“Enter your age <0-200>:”);scanf(“%d”,& peol[i++].age);while(getchar()!=’\n’){continue;}puts(“Enter next people name(empty line to stop):”);}if(i==0){puts(“No data enter!”);}else{printf(“ Here is the people list:\n”);for(j=0;j<i;j++)//是小于i而不是i+1,因为在前面i会多加一次。{printf(“people :%s, age:%d\n”, peol[j].name, peol[j].age);}printf(“end!\n”);}return 0;
}char* manage_gets(char str[],int len_limt)
{char* ret_val;char* find;ret_val = fgets(str,len_limt,stdin);if(ret_val){find = strchr(str,’\0’);if(find){*find = ‘\0’;}else{while(getchar()!=’\n’){continue;}}}return ret_val;
}
相关文章:
80.链表-由来
链表是怎么发展来的 线性表:是n个具有相同特性的数据元素的有限序列。 链表:具有线性存储结构的线性表。 为什么需要使用链表?(链表是如何被设计出来的) 程序开发最重要的部分是如何在项目程序中找到一种合适的、好…...
元胞自动机
文章目录前言文献阅读摘要主要贡献方法框架实验结论元胞自动机元胞自动机是什么?构成及规则案例及代码实现总结前言 This week,the paper proposes a Multi-directional Temporal Convolutional Artificial Neural Network (MTCAN) model to impute and forecast P…...
设计模式之各种设计模式总结与对比
目录1 目标2 定位3 一句话归纳设计原则4 G0F 23种设计模式简介5 设计模式使用频次总结6 —句话归纳设计模式7 设计模式之间的关联关系和对比1 目标 1、 简要分析GoF 23种设计模式和设计原则,做整体认知。 2、 剖析Spirng的编程思想,启发思维,为之后深入学习Spring…...
JAVA练习55- Fizz Buzz
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、题目-Fizz Buzz 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 提示:这里可以添加本文要记录的大概内容: 2月19日练习…...
LeetCode笔记:Biweekly Contest 98
LeetCode笔记:Biweekly Contest 98 1. 题目一 1. 解题思路2. 代码实现 2. 题目二 1. 解题思路2. 代码实现 3. 题目三 1. 解题思路2. 代码实现 4. 题目四 比赛链接:https://leetcode.com/contest/biweekly-contest-98 1. 题目一 给出题目一的试题链接如…...
HNUCM-《算法分析与设计》期末考试考前复习题
问题 A: X星人的地盘题目描述一天,X星人和Y星人在一张矩形地图上玩抢地盘的游戏。X星人每抢到一块地,在地图对应的位置标记一个“X”;Y星人每抢到一块地,在地图对应的位置标记一个“Y”;如果某一块地无法确定其归属则标…...
算法导论【分治思想】—大数乘法、矩阵相乘、残缺棋盘
这里写自定义目录标题分治法概述特点大数相乘问题分治算法矩阵相乘分治算法残缺棋盘分治算法分治法概述 在分而治之的方法中,一个问题被划分为较小的问题,然后较小的问题被独立地解决,最后较小问题的解决方案被组合成一个大问题的解决。 通常…...
Java【七大排序】算法详细图解,一篇文章吃透
文章目录一、排序相关概念二、七大排序1,直接插入排序2,希尔排序3,选择排序4,堆排序5,冒泡排序5.1冒泡排序的优化6,快速排序6.1 快速排序的优化7,归并排序三、排序算法总体分析对比总结提示&…...
Autosar OS IOC
Inter-OS-Application Communicator 背景和基本原理General purposeIOC functionalityCommunicationNotificationIOC interface背景和基本原理 The IOC implementation shall be part of the Operating System IOC和操作系统紧密相关,是操作系统实现的一部分 The IO…...
记录一次Binder内存相关的问题导致APP被杀的BUG排查过程
事情的起因的QA压测过程发生进程号变更,怀疑APP被杀掉过,于是开始看日志 APP的压测平台会上报进程号变更时间点,发现是在临晨12:20分,先大概确定在哪个日志文件去找关键信息一开始怀疑是crash,然后就在日志…...
设计模式(十)----结构型模式之适配器模式
1、概述 如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。所以就需要一个插座转换器,转换器第1面插入当地的插座,第2面…...
【数据结构】——队列
文章目录前言一.什么是队列,队列的特点二、队列相关操作队列的相关操作声明队列的创建1.队列的初始化2.对队列进行销毁3.判断队列是否为空队列4.入队操作5.出队操作6.取出队头数据7. 取出队尾数据8.计算队伍的人数总结前言 本文章讲述的是数据结构的特殊线性表——…...
Android OTA升级常见问题的解决方法
1.1 多服务器编译 OTA 报错 Android7 以后引入了 jack-server 功能,也导致在公共服务器上 编译 Android7 以上的版本时,会出现 j ack-server 报错问题。 在多用户服务器上 编译 dist 时 会出现编译过程中 会将 port_service 和 port_admin 改为 默认的 …...
说说Hibernate
当你在实战项目中需要用到SSH时, 如果你之前只用过Mybatis那自然是不能解决问题的, 因为在很多银行类金融类项目中你可能会使用到Hibernate, 那么关于Hibernate你应该要了解什么呢, 本篇文章就以学习Hibernate框架为目的, 巩固在工作中可能需要用到的这种ORM技术, 同时也欢迎家…...
目标检测论文阅读:DETR算法笔记
标题:End-to-End Object Detection with Transformers 会议:ECCV2020 论文地址:https://link.springer.com/10.1007/978-3-030-58452-8_13 官方代码:https://github.com/facebookresearch/detr 作者单位:巴黎第九大学、…...
Golang sync.Once 源码浅析
本文分析了Golang sync.Once 源码,并由此引申,简单讨论了单例模式的实现、 atomic 包的作用和 Java volatile 的使用。 sync.Once 使用例子 sync.Once 用于保证一个函数只被调用一次。它可以用于实现单例模式。 有如下类型: type instanc…...
C++面向对象(上)
文章目录前言1.面向过程和面向对象初步认识2.引入类的概念1.概念与用法2.类的访问限定符及封装3.类的作用域和实例化4.类的大小计算5.this指针3.总结前言 本文将对C面向对象进行初步介绍,引入类和对象的概念。围绕类和对象介绍一些基础知识,为以后深入学…...
经常用但是不知道什么是BFC?
BFC学习 block formatting context 块级格式上下文 简单理解: 一个独立容器,内部布局不会受到外面的影响 形成条件: 1.浮动元素:float除none之外的值 2.绝对定位:position:absolute,fixed 3.display:inline-blo…...
GO的临时对象池sync.Pool
GO的临时对象池sync.Pool 文章目录GO的临时对象池sync.Pool一、临时对象池:sync.Pool1.1 临时对象的特点1.2 临时对象池的用途1.3 sync.Pool 的用法二、临时对象池中的值会被及时清理掉2.1 池清理函数2.2 池汇总列表2.3 临时对象池存储值所用的数据结构2.4 临时对象…...
高精度算法一
目录 1. 基础知识 2. 大整数 大整数 3. 大整数 - 大整数 1. 基础知识 利用计算机进行数值计算,有时会遇到这样的问题:有些计算要求精度高,希望计算的数的位数可达几十位甚至几百位,虽然计算机的计算精度也算较高了,…...
告别Ping不通!STM32H7以太网LWIP裸机移植实战:LAN8720硬件连接与软件调试全记录
STM32H7以太网LWIP裸机移植:从硬件连接到软件调试的深度实战指南 当你在深夜的实验室里盯着屏幕上那个顽固的"Request timed out"提示,第十次尝试ping通你的STM32H750开发板时,那种挫败感我深有体会。以太网移植看似简单——连接几…...
英雄联盟自动化工具终极指南:3分钟学会用LeagueAkari提升游戏效率
英雄联盟自动化工具终极指南:3分钟学会用LeagueAkari提升游戏效率 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾在排位赛…...
基于ROS的6-DOF KUKA机器人高效抓取方案:运动学算法与仿真实现
基于ROS的6-DOF KUKA机器人高效抓取方案:运动学算法与仿真实现 【免费下载链接】pick-place-robot Object picking and stowing with a 6-DOF KUKA Robot using ROS 项目地址: https://gitcode.com/gh_mirrors/pi/pick-place-robot 本项目是一个基于ROS&…...
Laravel-Admin单元测试终极指南:10个技巧确保后台代码质量 [特殊字符]
Laravel-Admin单元测试终极指南:10个技巧确保后台代码质量 🚀 【免费下载链接】laravel-admin Build a full-featured administrative interface in ten minutes 项目地址: https://gitcode.com/gh_mirrors/la/laravel-admin Laravel-Admin是一个…...
MTEB 排行榜之外:嵌入模型在 JRXML 场景下的选择逻辑
前文引用:通用分块器搞不定 JRXML:一个领域感知分块器的三层设计 分块之后,每一段文本需要转成一个向量,才能存进向量数据库做相似度检索。这个"文本 → 向量"的函数就是文本嵌入模型(Embedding Model&#…...
5G时代LTE-A为何依然能打:从技术原理到实战场景的深度解析
1. 项目概述:一场意料之外的“降维打击”最近和几个做无线通信的朋友聊天,聊到一个挺有意思的现象:在很多公开的测试和实际部署场景里,当5G和LTE-A(LTE-Advanced,通常指4G)被放在同一个竞技场里…...
ElevenLabs古吉拉特文语音合成失效排查手册(97.3%开发者忽略的ISO 639-2语言码陷阱)
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs古吉拉特文语音合成失效的根本诱因 ElevenLabs 官方 API 文档明确标注支持 Gujarati(gu-IN)语言标识,但实际调用时持续返回 400 Bad Request 或静音音频&…...
3分钟搞定京东自动抢购:Python工具终极完整指南
3分钟搞定京东自动抢购:Python工具终极完整指南 【免费下载链接】autobuy-jd 使用python语言的京东平台抢购脚本 项目地址: https://gitcode.com/gh_mirrors/au/autobuy-jd 还在为京东秒杀总是抢不到而烦恼吗?手动操作总是慢人一步,眼…...
深度解析 Gemini CLI:架构剖析、高级配置与自动化工作流的高级使用技巧报告
深度解析 Gemini CLI:架构剖析、高级配置与自动化工作流的高级使用技巧报告 Gemini Command Line Interface (CLI) 代表了终端环境下人工智能辅助开发的根本性范式转变。该工具并非仅仅是一个简单的应用程序接口(API)封装,而是一…...
AI智能体安全审计实战:构建可插拔的安全技能库
1. 项目概述:一个面向AI智能体的安全审计技能库最近在折腾AI智能体(Agent)的开发,发现一个挺有意思的现象:大家把大量精力都花在了让智能体“更聪明”上,比如提升其推理能力、扩展工具调用范围,…...
