3.9Code

基于顺序存储结构的图书信息表的图书去重 

#include<iostream>
#include<stdlib.h>
#include<string.h>typedef int status;#define OK 1using namespace std;typedef struct{char no[50];char name[50];float price;
}Book;typedef struct{Book* elem;int len;
}SqList;status InitList(SqList* L,int n){L->elem=(Book*)malloc((n+5)*sizeof(Book));if(!L->elem) exit(-1);L->len=0;return OK;
}status CreateList(SqList* L,int n){for(int i=0;i<n;i++){bool flag=true;Book b;cin>>b.no>>b.name>>b.price;for(int j=0;j<L->len;j++){if(!strcmp(b.no,L->elem[j].no)){flag=false;break;	}}if(flag){L->elem[L->len]=b;L->len++;}}return OK;
}void PrintList(SqList* L){printf("%d\n",L->len);for(int i=0;i<L->len;i++){printf("%s %s %.2f\n",L->elem[i].no,L->elem[i].name,L->elem[i].price);}
}int main(){SqList L;int n=0;cin>>n; //图书数 InitList(&L,n);CreateList(&L,n);PrintList(&L); return 0;
}

终于开链表了开链表了T_T

基于链式存储结构的图书信息表的创建和输出

#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<iomanip>typedef int status;#define OK 1using namespace std;typedef struct{string no;string name;float price;
}Book;typedef struct LNode{Book data;struct LNode* next;
}LNode,*LinkList;     //这样typedef,可以在后期比较方便地创建指向链表结点的指针 void InitList(LinkList& L){L=new LNode;L->next=NULL;
}//创建链表(含头结点),顺便返回链表长度 
int CreateList(LinkList& L){string no,name;float price;LinkList r=L;LinkList p;int elemCnt=0;while(1){//后插法创建链表cin>>no>>name>>price;if(no=="0" && name=="0" && price==0.0)break;else{p=new LNode;p->data.no=no;p->data.name=name;p->data.price=price;p->next=NULL;r->next=p;r=p;elemCnt++;} } return elemCnt;
}void PrintList(LinkList& L,int n){LinkList p=L->next;cout<<n<<endl;while(p){cout<<fixed<<setprecision(2);cout<<p->data.no<<" "<<p->data.name<<" "<<p->data.price<<endl;p=p->next;}}int main(){LinkList L;int n=0;InitList(L);n=CreateList(L);PrintList(L,n);return 0;
} 

知识点

cout<<fixed<<setprecision(2);

需要添加头文件iomanip

这个用于精度控制(不然如果用%.2f,C和C++风格字符串混在一起也太乱糟了)

(顺便,C中其实是没有string的,如果定义了string,再用printf输出的话,要.c_str() )

基于链式存储结构的图书信息表的排序

#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<iomanip>typedef int status;#define OK 1using namespace std;typedef struct{string no;string name;float price;
}Book;typedef struct LNode{Book data;struct LNode* next;
}LNode,*LinkList;void InitList(LinkList& L){L=new LNode;L->next=NULL;
}int CreateList(LinkList& L){string no,name;float price;LinkList r,p;r=L;int len=0;while(1){cin>>no>>name>>price;if(no=="0" && name=="0" && price==0.0)break;p=new LNode; //不要漏掉! p->data.no=no;p->data.name=name;p->data.price=price;p->next=NULL;r->next=p;r=p;len++;}return len;
}//排序 
void SortList(LinkList& L,int n){LinkList p;for(int i=0;i<n-1;i++){p=L->next;int j=0;while(p && j<n-1-i){if(p->data.price<p->next->data.price){Book b=p->data;p->data=p->next->data;p->next->data=b;}p=p->next;j++;}}} void PrintList(LinkList& L){LinkList p=L->next;while(p){cout<<fixed<<setprecision(2);cout<<p->data.no<<" "<<p->data.name<<" "<<p->data.price<<endl;p=p->next;}
}int main(){LinkList L;InitList(L);int len=CreateList(L);SortList(L,len);PrintList(L); 
}

知识点

对于链表的冒泡排序:(在创建链表时顺便就得到了链表长度,不用再额外遍历一遍了)

另:对定义链表的语句理解:

之后写LinkList L,L就是一个LinkList类型的指针,相当于一个指向链表结点的指针,包括在遍历时用到的辅助指针p等,都是这个类型的。

若想往结点里存数据,那么就先要为它开辟空间,所以常有这样的定义语句:

LinkList p;
p=new LNode;

基于链式存储结构的图书信息表的修改 

#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<iomanip>typedef int status;#define OK 1using namespace std;typedef struct{string no;string name;float price;
}Book;typedef struct LNode{Book data;struct LNode* next;
}LNode,*LinkList;void InitList(LinkList& L){L=new LNode;L->next=NULL;
}int CreateList(LinkList& L,float &sum){string no,name;float price;LinkList r,p;r=L;int len=0;while(1){cin>>no>>name>>price;if(no=="0" && name=="0" && price==0.0)break;p=new LNode; //不要漏掉! p->data.no=no;p->data.name=name;p->data.price=price;p->next=NULL;r->next=p;r=p;len++;sum+=price;}return len;
}void ModifyList(LinkList& L,float avg){LinkList p=L->next;while(p){if(p->data.price<avg)p->data.price*=1.2;elsep->data.price*=1.1;p=p->next;}
} void PrintList(LinkList& L){LinkList p=L->next;while(p){cout<<fixed<<setprecision(2);cout<<p->data.no<<" "<<p->data.name<<" "<<p->data.price<<endl;p=p->next;}
}int main(){LinkList L;InitList(L);float sum=0.0;int len=CreateList(L,sum);float avg=sum/(float)len;cout<<fixed<<setprecision(2);cout<<avg<<endl;ModifyList(L,avg);PrintList(L); 
}

基于链式存储结构的图书信息表的逆序存储(链表逆序就用头插法实现即可,很简单)

#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<iomanip>typedef int status;#define OK 1using namespace std;typedef struct{string no;string name;float price;
}Book;typedef struct LNode{Book data;struct LNode* next;
}LNode,*LinkList;void InitList(LinkList& L){L=new LNode;L->next=NULL;
}void CreateList(LinkList& L){int n;cin>>n; //链表长度 string no,name;float price;LinkList r,p;int cnt=0;while(cnt<n){cin>>no>>name>>price;p=new LNode; //不要漏掉! p->data.no=no;p->data.name=name;p->data.price=price;p->next=NULL;//头插法实现逆序存储r=L->next;L->next=p;p->next=r; cnt++;}
}void PrintList(LinkList& L){LinkList p=L->next;while(p){cout<<fixed<<setprecision(2);cout<<p->data.no<<" "<<p->data.name<<" "<<p->data.price<<endl;p=p->next;}
}int main(){LinkList L;InitList(L);float sum=0.0;CreateList(L);PrintList(L); 
}

查找最贵图书

#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<iomanip>typedef int status;#define OK 1using namespace std;typedef struct{string no;string name;float price;
}Book;typedef struct LNode{Book data;struct LNode* next;
}LNode,*LinkList;void InitList(LinkList& L){L=new LNode;L->next=NULL;
}//返回最高图书价格 
float CreateList(LinkList& L){int n;cin>>n; //链表长度 string no,name;float price;float max=0.0; LinkList r,p;r=L; //等于L比较好,如果等于L->next,之后会出现r=p->next的情况,这时候r的next就不太好了 int cnt=0;while(cnt<n){cin>>no>>name>>price;p=new LNode; //不要漏掉! p->data.no=no;p->data.name=name;p->data.price=price;p->next=NULL;if(price>max)max=price;r->next=p;r=p;cnt++;}return max;
}//返回最贵图书的数量 
int TraverseList(LinkList&L,float max){LinkList p=L->next;int cnt=0;while(p){if(p->data.price==max)cnt++; p=p->next;}return cnt;
}void PrintList(LinkList& L,float max){LinkList p=L->next;while(p){cout<<fixed<<setprecision(2);if(p->data.price==max){cout<<p->data.no<<" "<<p->data.name<<" "<<p->data.price<<endl;}p=p->next;}
}int main(){LinkList L;InitList(L);float max=CreateList(L);cout<<TraverseList(L,max)<<endl;PrintList(L,max); 
}

查找最爱图书(同顺序表,用一个数组存储待查序列,代码写的比较乱功能封装的也不好,摆烂..)

#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<iomanip>typedef int status;#define OK 1using namespace std;typedef struct{string no;string name;float price;
}Book;typedef struct LNode{Book data;struct LNode* next;
}LNode,*LinkList;void InitList(LinkList& L){L=new LNode;L->next=NULL;
}//返回最高图书价格 
void CreateList(LinkList& L){int n;cin>>n; //链表长度 string no,name;float price;LinkList r,p;r=L; //等于L比较好,如果等于L->next,之后会出现r=p->next的情况,这时候r的next就不太好了 int cnt=0;while(cnt<n){cin>>no>>name>>price;p=new LNode; //不要漏掉! p->data.no=no;p->data.name=name;p->data.price=price;p->next=NULL;r->next=p;r=p;cnt++;}
}//返回最爱图书的数量 
int TraverseList(LinkList&L,string love){LinkList p=L->next;int cnt=0;while(p){if(p->data.name==love)cnt++; p=p->next;}return cnt;
}void PrintList(LinkList& L,string love){LinkList p=L->next;while(p){cout<<fixed<<setprecision(2);if(p->data.name==love){cout<<p->data.no<<" "<<p->data.name<<" "<<p->data.price<<endl;}p=p->next;}}int main(){LinkList L;InitList(L);CreateList(L);int num;cin>>num;string love[num];for(int j=0;j<num;j++)cin>>love[j]; for(int i=0;i<num;i++){if(TraverseList(L,love[i])!=0){cout<<TraverseList(L,love[i])<<endl;PrintList(L,love[i]); }else cout<<"Sorry,there is no your favourite!"<<endl;}}

基于链式存储结构的图书信息表的最佳位置图书的查找

#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<iomanip>typedef int status;#define OK 1using namespace std;typedef struct{string no;string name;float price;
}Book;typedef struct LNode{Book data;struct LNode* next;
}LNode,*LinkList;void InitList(LinkList& L){L=new LNode;L->next=NULL;
}int CreateList(LinkList& L){int n;cin>>n; //链表长度 string no,name;float price;LinkList r,p;r=L; //等于L比较好,如果等于L->next,之后会出现r=p->next的情况,这时候r的next就不太好了 int cnt=0;while(cnt<n){cin>>no>>name>>price;p=new LNode; //不要漏掉! p->data.no=no;p->data.name=name;p->data.price=price;p->next=NULL;r->next=p;r=p;cnt++;}return n;
}//返回最爱图书的数量 
int TraverseList(LinkList&L,string love){LinkList p=L->next;int cnt=0;while(p){if(p->data.name==love)cnt++; p=p->next;}return cnt;
}void PrintList(LinkList& L,int place,int n){if(place<1||place>=n)cout<<"Sorry,the book on the best position doesn't exist!"<<endl;else{LinkList p=L->next;int index=0;while(p){cout<<fixed<<setprecision(2);if(index==place-1){cout<<p->data.no<<" "<<p->data.name<<" "<<p->data.price<<endl;break;}p=p->next;index++;}}}int main(){LinkList L;InitList(L);int n=CreateList(L);int searchNum; //要查找的图书的数目cin>>searchNum;int place[searchNum];for(int i=0;i<searchNum;i++){cin>>place[i];} for(int i=0;i<searchNum;i++){PrintList(L,place[i],n);}}

接下来是入库出库(即插入删除)

#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<iomanip>typedef int status;#define OK 1using namespace std;typedef struct{string no;string name;float price;
}Book;typedef struct LNode{Book data;struct LNode* next;
}LNode,*LinkList;     //这样typedef,可以在后期比较方便地创建指向链表结点的指针 void InitList(LinkList& L){L=new LNode;L->next=NULL;
}//创建链表(含头结点),顺便返回链表长度 
int CreateList(LinkList& L){int elemCnt;cin>>elemCnt;string no,name;float price;LinkList r=L;LinkList p;for(int i=0;i<elemCnt;i++){//后插法创建链表cin>>no>>name>>price;p=new LNode;p->data.no=no;p->data.name=name;p->data.price=price;p->next=NULL;r->next=p;r=p;} return elemCnt;
}//插入链表
bool InsertList(LinkList& L,int n,int place,Book b){bool flag=true;if(place<1 || place>n){cout<<"Sorry,the position to be inserted is invalid!"; flag=false;		}else{LinkList p=L; int cnt=0;while(cnt<place-1 && p){p=p->next; //找到要插入位置的前一个cnt++;			}//已找到位置LinkList q=new LNode;q->data.no=b.no;q->data.name=b.name;q->data.price=b.price;q->next=NULL;q->next=p->next;p->next=q;}return flag;
} void PrintList(LinkList& L){LinkList p=L->next;while(p){cout<<fixed<<setprecision(2);cout<<p->data.no<<" "<<p->data.name<<" "<<p->data.price<<endl;p=p->next;}}int main(){LinkList L;InitList(L);int n=CreateList(L);int place;cin>>place;Book b;cin>>b.no>>b.name>>b.price;if(InsertList(L,n,place,b))PrintList(L);return 0;
} 

知识点

当设计插入、删除这些操作时,因为要输出不合法的情况,所以可以为插入删除函数设置一个bool类型的返回值

下面是出库(搞清楚链表怎么插入怎么删除就行很简单)

#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<iomanip>typedef int status;#define OK 1using namespace std;typedef struct{string no;string name;float price;
}Book;typedef struct LNode{Book data;struct LNode* next;
}LNode,*LinkList;     //这样typedef,可以在后期比较方便地创建指向链表结点的指针 void InitList(LinkList& L){L=new LNode;L->next=NULL;
}//创建链表(含头结点),顺便返回链表长度 
int CreateList(LinkList& L){int elemCnt;cin>>elemCnt;string no,name;float price;LinkList r=L;LinkList p;for(int i=0;i<elemCnt;i++){//后插法创建链表cin>>no>>name>>price;p=new LNode;p->data.no=no;p->data.name=name;p->data.price=price;p->next=NULL;r->next=p;r=p;} return elemCnt;
}//删除链表
bool DeleteList(LinkList& L,int n,int place){bool flag=true;if(place<1 || place>n){cout<<"Sorry,the position to be deleted is invalid!"; flag=false;		}else{LinkList p=L; int cnt=0;while(cnt<place-1 && p){p=p->next; //找到要插入位置的前一个cnt++;			}//已找到位置LinkList tmp=p->next;p->next=tmp->next; free(tmp);}return flag;
} void PrintList(LinkList& L){LinkList p=L->next;while(p){cout<<fixed<<setprecision(2);cout<<p->data.no<<" "<<p->data.name<<" "<<p->data.price<<endl;p=p->next;}}int main(){LinkList L;InitList(L);int n=CreateList(L);int place;cin>>place;if(DeleteList(L,n,place))PrintList(L);return 0;
} 

图书去重

#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<iomanip>typedef int status;#define OK 1using namespace std;typedef struct{string no;string name;float price;
}Book;typedef struct LNode{Book data;struct LNode* next;
}LNode,*LinkList;     //这样typedef,可以在后期比较方便地创建指向链表结点的指针 void InitList(LinkList& L){L=new LNode;L->next=NULL;
}//创建链表(含头结点),顺便返回链表长度 
int CreateList(LinkList& L){int elemCnt;cin>>elemCnt;int realCnt=elemCnt;string no,name;float price;LinkList r=L;LinkList p;LinkList tmp;for(int i=0;i<elemCnt;i++){//后插法创建链表cin>>no>>name>>price;tmp=L->next;bool ifInsert=true;while(tmp){if(tmp->data.no==no){cout<<"有重名"<<endl;realCnt--;ifInsert=false;}tmp=tmp->next;}if(ifInsert){p=new LNode;p->data.no=no;p->data.name=name;p->data.price=price;p->next=NULL;r->next=p;r=p;cout<<"成功插入"<<endl;}} return realCnt;
}void PrintList(LinkList& L){LinkList p=L->next;while(p){cout<<fixed<<setprecision(2);cout<<p->data.no<<" "<<p->data.name<<" "<<p->data.price<<endl;p=p->next;}}int main(){LinkList L;InitList(L);cout<<CreateList(L)<<endl;PrintList(L);return 0;
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/733792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙App动画、弹窗

动画 属性动画 https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/ts-animatorproperty-0000001478181445-V3 组件的某些通用属性变化时&#xff0c;可以通过属性动画实现渐变过渡效果&#xff0c;提升用户体验。支持的属性包括width、height、backg…

【软件工程】软件工程定义、软件危机以及软件生命周期

&#x1f338;博主主页&#xff1a;釉色清风&#x1f338;文章专栏&#xff1a;软件工程&#x1f338; 今日语录&#xff1a;What matters isn’t how others think of your ambitions but how fervently you cling to them. 软件工程系列&#xff0c;主要根据老师上课所讲提及…

【ubuntu】安装 Anaconda3

目录 一、Anaconda 说明 二、操作记录 2.1 下载安装包 2.1.1 官网下载 2.1.2 镜像下载 2.2 安装 2.2.1 安装必要的依赖包 2.2.2 正式安装 2.2.3 检测是否安装成功 方法一 方法二 方法三 2.3 其他 三、参考资料 3.1 安装资料 3.2 验证是否成功的资料 四、其他 …

基于机器学习的工业用电量预测完整代码数据

视频讲解: 毕业设计:算法+系统基于机器学习的工业用电量预测完整代码数据_哔哩哔哩_bilibili 界面展示: 结果分析与展示: 代码: from sklearn import preprocessing import random from sklearn.model_selection import train_test_split from sklearn.preprocessing…

vue element plus Typography 排版

我们对字体进行统一规范&#xff0c;力求在各个操作系统下都有最佳展示效果。 字体# 字号# LevelFont SizeDemoSupplementary text12px Extra SmallBuild with ElementBody (small)13px SmallBuild with ElementBody14px BaseBuild with ElementSmall Title16px MediumBuild w…

个人健康管理系统|基于微信小程序的个人健康管理系统设计与实现(源码+数据库+文档)

个人健康管理小程序目录 目录 基于微信小程序的个人健康管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、用户信息管理 2 运动教程管理 3、公告信息管理 4、论坛信息管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设…

日期问题---算法精讲

前言 今天讲讲日期问题&#xff0c;所谓日期问题&#xff0c;在蓝桥杯中出现众多&#xff0c;但是解法比较固定。 一般有判断日期合法性&#xff0c;判断是否闰年&#xff0c;判断日期的特殊形式&#xff08;回文或abababab型等&#xff09; 目录 例题 题2 题三 总结 …

万字完整版【C语言】指针详解~

一、前言 初始指针&#xff08;0&#xff09;&#xff1a;着重于讲解指针的概念、基本用法、注意事项、以及最后如何规范使用指针深入指针&#xff08;1&#xff09;&#xff1a;讲解指针变量常见的类型&#xff0c;如何去理解这些类型、最后就是如何正确的使用深入指针&#…

【sgExcelGrid】自定义组件:简单模拟Excel表格拖拽、选中单元格、横行、纵列、拖拽圈选等操作

特性&#xff1a; 可以自定义拖拽过表格可以点击某个表格&#xff0c;拖拽右下角小正方形进行任意方向选取单元格支持选中某一行、列支持监听selectedGrids、selectedDatas事件获取选中项的DOM对象和数据数组支持props自定义显示label字段别名 sgExcelGrid源码 <template&g…

Swift 入门学习:集合(Collection)类型趣谈-下

概览 集合的概念在任何编程语言中都占有重要的位置&#xff0c;正所谓&#xff1a;“古来聚散地&#xff0c;宿昔长荆棘&#xff1b;游人聚散中&#xff0c;一片湖光里”。把那一片片、一瓣瓣、一粒粒“可耐”的小精灵全部收拢、吸纳的井然有序、条条有理&#xff0c;怎能不让…

React Three Fiber快速入门

https://threejs-journey.com/lessons/what-are-react-and-react-three-fiber#学习笔记 1.基础知识 resize 填充模版 构建第一个场景 we didn’t have to create a scenewe didn’t have to create the webglrenderthe scene is being rendered on each framethe default…

ubuntu23.10安装搜狗拼音

1.添加fcitx仓库 sudo add-apt-repository ppa:fcitx-team/nightly 更新: sudo apt-get update 安装fcitx sudo apt-get install fcitx fcitx安装成功 切换输入系统为fcitx

【C语言】tcp_transmit_skb

一、__tcp_transmit_skb讲解 这个函数 __tcp_transmit_skb() 是 Linux 内核中 TCP/IP 协议栈的一部分&#xff0c;负责处理传输控制协议&#xff08;TCP&#xff09;数据包的发送。具体来说&#xff0c;这个函数将 TCP 头部添加到一个没有任何头部信息的 socket buffer (sk_bu…

Diddler抓包工具——学习笔记

F12抓包 302【重定向】&#xff1a;当你发送了一个请求之后&#xff0c;那么这个请求重定向到了另外的资源 跳转和重定向的区别&#xff1a; 跳转是会把数据传到新的地址 重定向不会把新的数据传到新的地址 使用F12抓包时一定要打开Preserve Log开关&#xff0c;作用是保留…

万用表数据导出变化曲线图——pycharm实现视频数据导出变化曲线图

万用表数据导出变化曲线图——pycharm实现视频数据导出变化曲线图 一、效果展示二、环境配置三、代码构思四、代码展示五、代码、python环境包链接 一、效果展示 图1.1 效果展示 &#xff08;左图&#xff1a;万用表视频截图&#xff1b;右图&#xff1a;表中数据变化曲线图&am…

Springboot整合Mybaits启动过程

Springboot整合Mybaits启动过程 1.前言2.MybatisAutoConfiguration3.SqlSessionFactoryBean3.1 XMLConfigBuilder.parse()3.1.1 XMLMapperBuilder.parse()3.1.1.1 XMLStatementBuilder.parse() 4.SqlSession4.1 Executor 1.前言 直接加载mybatis配置文件&#xff0c;然后创建S…

Matlab|【EI复现】电动汽车集群并网的分布式鲁棒优化调度模型

目录 1 内容简介 2 关键知识点 2.1 三类电动汽车模型 3 程序结果 4 下载链接 1 内容简介 电动汽车的数据模型种类繁多&#xff0c;但是用到比较高阶数学方法的并不多&#xff0c;本次分享的程序是下图所示的文章。 采用分布鲁棒优化模型&#xff0c;用到鲁棒对等转换&…

MyBatis3源码深度解析(七)JDBC单连接事务

文章目录 前言2.7 JDBC单连接事务2.7.1 事务的开启与提交2.7.2 事务隔离级别2.7.2.1 并发访问问题&#xff08;1&#xff09;脏读&#xff08;2&#xff09;不可重复读&#xff08;3&#xff09;幻读 2.7.2.2 事务隔离级别&#xff08;1&#xff09;TRANSACTION_NONE&#xff1…

ChatGPT 串接到 Discord - 团队协作好助理

ChatGPT 串接到 Discord - 团队协作好助理 ChatGPT 是由 OpenAI 开发的一个强大的语言模型&#xff0c;本篇文章教你如何串接 Discord Bot &#xff0c;协助团队在工作上更加高效并促进沟通与协作。使 ChatGPT 发挥出最大的功效&#xff0c;进一步提升工作效率和团队协作能力。…

Redis 内存的优化

目录 前言 Redis 的内存碎片问题 判断Redis 内存碎片 如何清理内存碎片&#xff1f; 前言 我想讲一下怎么提高Redis 内存的利用率&#xff0c;redis 的数据是保存在内存中。对内存的利用率低&#xff0c;意味着存的数据很少&#xff0c;并不意味着就没有内存了&#xff0c…