当前位置: 首页 > news >正文

php做小公司网站用什么框架定兴网站建设

php做小公司网站用什么框架,定兴网站建设,中国建设工程造价管理系统,做网站数据库怎么做文章目录 线性表概念顺序表静态顺序表动态顺序表 总结 线性表概念 线性表是最基本、最简单、也是最常用的一种数据结构#xff0c;常见的线性表:顺序表、链表、栈、队列、字符串…线性表#xff08;linear list#xff09;是数据结构的一种#xff0c;一个线性表是n个具… 文章目录 线性表概念顺序表静态顺序表动态顺序表 总结 线性表概念 线性表是最基本、最简单、也是最常用的一种数据结构常见的线性表:顺序表、链表、栈、队列、字符串…线性表linear list是数据结构的一种一个线性表是n个具有相同特性的数据元素的有限序列。 线性表在逻辑上是线性结构也就说是连续的一条直线。但是在物理结构上并不一定是连续的线性表在物理上存储时通常以数组和链式结构的形式存储。 顺序表概念以及结构 顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为: 1.静态顺序表:使用定长数组存储。 2.动态顺序表:使用动态开辟的数组存储。 静态顺序表 概念 静态顺序表就是给定存储数据的大小来存储数据在运行时已经确定的了一般都是通过一个固定大小的数组来储存元素 优点 通过数组的下标就能够快速的找到相应的元素有快速访问的效果 缺点 由于静态顺序表在开始时储存的空间大小已经确定了无法改变所以如果设置过大就会造成空间的浪费如果太小就会造成数据溢出 实现 1.我们通过静态的顺序表来实现增删 2.在实现我们的过程中每完成一个函数就验证一下保证不会出错再实现下一个函数 3.我们要实现的函数有初始化、打印、判断数组空间是否已满、尾插、头插、尾删、头删 一.构建框架 1.通过多文件来链接 基本的头文件和创建的结构体和一些定义 #includestdio.h #includestring.h//用于初始化 memset函数 #includestdlib.h #include assert.h//用assert函数-判断对错 #define max 20 //方便改变数组的大小 typedef int SQDataType;//方便改变数据类型 struct SeqList //创建结构体由于结构体能放多种 不同的数据 //我们这里就实现整数{SQDataType a[max];//数组int size;//记录元素个数}; typedef struct SeqList sl;//简化二.分模块实现 1.初始化 我们将结构体中的数组和元素个数都初始化为0 代码实现 void SeqListInit(sl* ps) {memset(ps-a, 0, sizeof(SQDataType) * max);//将数组内容初始化为0ps-size0;//开始拥有0个元素 }检查 2.判断数组是否已经满了 我们通过比较size数组中元素的个数和max数组最大 容量来判断 代码实现 int man(sl* ps) {if (ps-size max)//当size大于max时此时数组空间已经满了{return 0;}elsereturn 1; }3.尾插 因为数组是从下标0开始的所以我们可以将插入的数据插到数组下标为size元素的个数那个位置即可由于插入一个数据所以size要加1 代码实现 void SeqListPushBack(sl* ps, SQDataType x) {//尾插assert(man(ps));//判断数组空间是否满了ps-a[ps-size] x;//赋值ps-size;//下标}检查 我们这里插入 1234 4.打印 通过循环将结构体中的数组内容打印出来 代码实现 void SeqListPrint(sl* ps) {//打印for (int i 0; i ps-size; i)printf(%d , ps-a[i]);printf(\n); }检查 5.头插 头插过程中我们要通过循环将所有数据都往后移动一位再减插入的元素放到下标为0的位置即可当然size也要加1哦 代码实现 void SeqListPushFront(sl* ps, SQDataType x) {//头插assert(man(ps));for (int i ps-size; i0; i--) {//所有数据后移动一位ps-a[i] ps-a[i-1] ;}ps-a[0] x;ps-size; }检查 我们在上面的基础上头插一个0 6.尾删 我们可以直接将数组最后一个赋为0因为我们初始化本身就是0当然size要减1 代码实现 void SeqListPopBack(sl* ps) {//尾删ps-a[ps-size - 1] 0;ps-size--; }检查 在上面的基础上减去两个数 7.头删 我们可以直接通过循环直接将首元素直接覆盖 代码实现 void SeqListPopFront(sl* ps) {//头删for (int i 0; i ps-size; i)//所有数据前移动一位将头个数据给覆盖掉ps-a[i] ps-a[i 1];ps-size--;//减少一个元素 }检查 在上面的基础上头删两个数据 所有代码一览 SeqList.h: c #define _CRT_SECURE_NO_WARNINGS #includestdio.h #includestring.h//用于初始化 memset函数 #includestdlib.h #include assert.h//用assert函数-判断对错 #define max 20 //方便改变数组的大小 typedef int SQDataType;//方便改变数据类型 struct SeqList //创建结构体{SQDataType a[max];int size;//记录元素个数}; typedef struct SeqList sl;//简化 // 增删查改等接口函数 void SeqListInit(sl* ps);//初始化 int man(sl* ps);//判断数组是否已满 void SeqListPrint(sl* ps);//打印 // 尾插 头插 尾删 头删 void SeqListPushBack(sl* ps, SQDataType x);//尾插 void SeqListPushFront(sl* ps, SQDataType x);//头插 void SeqListPopBack(sl* ps);//尾删 void SeqListPopFront(sl *ps);//头删SeqList.c: #define _CRT_SECURE_NO_WARNINGS #includeSeqList.h void SeqListInit(sl* ps) {memset(ps-a, 0, sizeof(SQDataType) * max);//将数组内容初始化为0ps-size0;//开始拥有0个元素 } void SeqListPrint(sl* ps) {//打印for (int i 0; i ps-size; i)printf(%d , ps-a[i]);printf(\n); } int man(sl* ps) {if (ps-size max)//当size大于max时此时数组空间已经满了{return 0;}elsereturn 1; }void SeqListPushBack(sl* ps, SQDataType x) {//尾插assert(man(ps));//判断数组空间是否满了ps-a[ps-size] x;//赋值ps-size;//下标}void SeqListPushFront(sl* ps, SQDataType x) {//头插assert(man(ps));for (int i ps-size; i0; i--) {//所有数据后移动一位ps-a[i] ps-a[i-1] ;}ps-a[0] x;ps-size; } void SeqListPopBack(sl* ps) {//尾删ps-a[ps-size - 1] 0;ps-size--; } void SeqListPopFront(sl* ps) {//头删for (int i 0; i ps-size; i)//所有数据前移动一位将头个数据给覆盖掉ps-a[i] ps-a[i 1];ps-size--;//减少一个元素 }Test.c: #define _CRT_SECURE_NO_WARNINGS #includeSeqList.h void teat1() {sl s;SeqListInit(s);SeqListPushBack(s, 1);SeqListPushBack(s, 2);SeqListPushBack(s, 3);SeqListPushBack(s, 4);SeqListPushFront(s, 0);SeqListPopBack(s);SeqListPopBack(s);SeqListPopFront(s);SeqListPopFront(s);SeqListPrint(s); } int main() {teat1();return 0; }以上就是静态顺序表的增删实现了 动态顺序表 概念 动态顺序表可以根据需求来扩容存储空间比静态顺序表灵活因此动态顺序表被广泛使用 优点 可以根据需要动态地分配内存,灵活性更高。 可以避免静态数组可能出现的内存浪费问题。 由于内存空间是动态分配的,因此可以处理数据量不确定或者变化的情况 缺点 由于插入、删除数据时可能会移动大量数据所以效率较低 实现 动态顺序表和静态的过程差不多就是将数组的空间大小改为可变的 1.在顺序表的基础上增加了扩容函数不需要判断空间是否满的函数初始化函数也改变了 2.用指针的方式将数据链接起来 一.改变的创建的结构体 struct SeqList {SQDataType* a;//用指针的方式将数据链接起来int size;//元素的个数int capacity;//空间的大小 };二.主要函数的实现 1.初始化 void SeqListInit(sl* ps) {ps-a NULL;//将指针置空ps-size 0;//开始为0ps-capacity 0;//空间开始为0 }检查 2.扩容 void SeqListCheckCapacity(sl* ps) {if (ps-size ps-capacity) {//判断空间是否满了满了就扩容int ws ps-capacity 0 ? 4 : 2 * ps-capacity;//如果空间为0就先给4不然就给2倍SQDataType* tmp (SQDataType*)realloc(ps-a, sizeof(SQDataType) * ws);//扩容将首地址给tmpif (tmp NULL)//判断是否成功扩容{printf(realloc fail\n);exit(-1);}else{ps-a tmp;//将首地址给aps-capacity ws;//将扩容后的空间大小赋给capacity}} }3.尾插 因为数组是从下标0开始的所以我们可以将插入的数据插到数组下标为size元素的个数那个位置即可由于插入一个数据所以size要加1 代码实现 void SeqListPushBack(sl* ps, SQDataType x) {//尾插SeqListCheckCapacity(ps);//判断是否要扩容ps-a[ps-size] x;//赋值ps-size;//下标}检查 我们这里插入 1234 4.打印与静态顺序表一样 5.头插 头插过程中我们要通过循环将所有数据都往后移动一位再减插入的元素放到下标为0的位置即可当然size也要加1哦 代码实现 void SeqListPushFront(sl* ps, SQDataType x) {//头插SeqListCheckCapacity(ps);for (int i ps-size; i0; i--) {//所有数据后移动一位ps-a[i] ps-a[i-1] ;}ps-a[0] x;ps-size; }检查 我们在上面的基础上头插一个0 6.由于尾删和头删没有涉及到扩容所以和静态顺序表的一样 总结 1.还有查改等没写有兴趣的可以去试试哦 2.顺序表虽然可以通过扩容来解决空间问题但是每次以2倍的增长时还是会造成一定的空间浪费如我扩了100个空间我只用了10个。 3.就是顺序表在插入或者删除时需要移动大量的数据这样导致效率不高 以上就是我的分享了如果有什么错误欢迎在评论区留言。 最后谢谢大家的观看
http://www.zqtcl.cn/news/684695/

相关文章:

  • 网站建设与发布需要什么提供网站制作公司哪家好
  • 西宁市城市道路建设规划网站探测器 东莞网站建设
  • 旅游村庄网站建设方案小程序制作价格
  • 网站地图制作软件机械加工网免费铺货
  • 网站上线有什么线上活动可以做龙华建网站多少钱
  • 门户网站系统开发建设电脑优化
  • 公司建网站多少钱一个月服务佳的广州网站建设
  • 怎么创建网站建设徐州网站建设要多少钱
  • 微网站功能列表菜市场做建筑设计图库的网站设计
  • 制作网站支付方式定制网站开发哪里好
  • 常州网络网站建设行情软件app网站大全下载
  • 出台网站集约化建设通知彩票网站开发的
  • 怎样创建个人的网站怎么学做网站
  • 小江高端网站建设网站建设中可能升级
  • 网站建设的原则有哪些内容wordpress的底部版权
  • 一个网站建立团队大概要多少钱大连专业网站建设
  • 宁波网站公司相册插件wordpress
  • 科技网站域名大型网站开发团队
  • 温岭建设规划局网站注册新公司网上怎么核名
  • dede网站移动端怎么做golang 网站开发 开源
  • 织梦网站导航固定沈阳男科医院在线咨询免费
  • 四川华鸿建设有限公司网站网站建设需求文案
  • 汕头东莞网站建设怎么制作微信小程序app
  • 网站建设预算方案模板怎么做网络推广网站
  • 顺义网站开发wordpress内容主题模板下载
  • 永康做网站的化工网站模板免费下载
  • 潍坊高密网站建设如何做网页推广
  • 杭州房产网站建设wordpress 替换谷歌字体
  • 陕西省建设工程质量安全监督总站网站开发公司与施工单位工程造价鉴定报告
  • 嘉兴网站建设企业阿里巴巴国际贸易网站