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

湖州网站制作杭州网站优化流程

湖州网站制作,杭州网站优化流程,长沙房地产开发商排名,宁波市网站建设公司文章目录 一.静态顺序表:长度固定二.动态顺序表1.下面证明原地扩容和异地扩容代码如下:2.下面是写一段Print,打印数字看看:3.头插4.尾删5.头删6.越界一定会报错吗7.下标插入8.下标删除9.查找数字10.应用:利用顺序表写一…

文章目录

  • 一.静态顺序表:长度固定
  • 二.动态顺序表
    • ==1.下面证明原地扩容和异地扩容代码如下:==
    • ==2.下面是写一段Print,打印数字看看:==
    • ==3.头插==
    • ==4.尾删==
    • ==5.头删==
    • ==6.越界一定会报错吗==
    • ==7.下标插入==
    • ==8.下标删除==
    • ==9.查找数字==
    • ==10.应用:利用顺序表写一个菜单==

顺序表就是数组,特殊要求:顺序表只能从头开始连续存储,分为静态存储和动态存储

一.静态顺序表:长度固定

在这里插入图片描述
里面是静态数组,size表示存的多少个数据。
弊端:不知道需要多少,N给小了不够用,N给大了浪费。

二.动态顺序表

在这里插入图片描述
尾插法,size++

扩容时用到realloc
在这里插入图片描述

区分realloc原地扩容和异地扩容
原地扩容返回的是和原来一样的地址
异地扩容返回的是和原来不同的地址,并且把原来的空间free掉

http://t.csdnimg.cn/CKsJs

在这里插入图片描述

先用malloc开辟空间。
注意:在使用malloc函数之前我们一定要计算字节数,malloc开辟的是用户所需求的字节数大小的空间。

写个程序通过地址变化判断是原地扩还是异地扩时
在这里插入图片描述

1.下面证明原地扩容和异地扩容代码如下:

❗SeqList.h如下:

#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
//作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)
typedef int SLDataType;//定义顺序表
typedef struct SeqList
{//定义指针SLDataType* a;//记录有效数据个数int size;//记录空间大小int capacity;}SL;//初始化函数
void SLInit(SL* ps1);
void SLDestroy(SL* ps1);
void SLCheckCapacity(SL* ps1);//写一个公共逻辑
//尾插
void SLPushBack(SL* ps1, SLDataType x);

❗SeqList.c如下:

#include"SeqList1.h"
void SLInit(SL* ps1)
{assert(ps1);ps1->a = NULL;ps1->size = 0;ps1->capacity = 0;
}void SLDestroy(SL* ps1)
{assert(ps1);if (ps1->a!=NULL){free(ps1->a);ps1->a = NULL;ps1->size = 0;ps1->capacity = 0;}
}void SLCheckCapacity(SL* ps1)//写一个公共逻辑
{assert(ps1);if (ps1->size == ps1->capacity){int newCapacity = ps1->capacity == 0 ? 4 : ps1->capacity * 2;//如果ps1->capacity == 0为真则newCapacity=4,如果为假,则newCapacity=ps1->capacity*2SLDataType* tmp = (SLDataType*)realloc(ps1->a, sizeof(SLDataType) * newCapacity);if (tmp == NULL){perror("realloc fail");return;}ps1->a = tmp;ps1->capacity = newCapacity;}
}
void SLPushBack(SL* ps1, SLDataType x)
{SLCheckCapacity(ps1);//调用ps1->a[ps1->size] = x;ps1->size++;}

原地扩容(Test.c):
在这里插入图片描述
异地扩容(Test.c):
在这里插入图片描述

2.下面是写一段Print,打印数字看看:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.头插

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
打印数字查看尾插头插区别
在这里插入图片描述
头插效率高吗?
头插的时间复杂度是O(n),如果头插n个数据的话,那么时间复杂度是O(n^2),如果是尾插n个数据,则尾插的时间复杂度是O(n),尾插效率更高。

4.尾删

在这里插入图片描述
不用释放后面的空间
可以看到第三行比第二行尾巴后面少了9
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

因为尾删容易导致删空了的数据表还继续尾删的情况,所以要进行检查。
方法一空了直接return
方法二暴力检查,空了直接报错
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5.头删

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

6.越界一定会报错吗

不一定,在C语言越界读取中不会,而越界写可能会报错,如:
在这里插入图片描述

7.下标插入

这里的pos是下标
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
注意:
在这里插入图片描述

最后一行那里显示了报错的原因出处,我们找到出处,发现是assert的警告
在这里插入图片描述

8.下标删除

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

9.查找数字

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

10.应用:利用顺序表写一个菜单

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

http://www.mmbaike.com/news/99940.html

相关文章:

  • win8网站模版磁力王
  • 优秀的展厅设计网站百度指数查询官网入口登录
  • 58网站怎么样做效果会更好网页搜索关键词
  • 公安网站建设的目标东莞网站开发公司
  • 网站建设合同注意点正规电商培训学校排名
  • 购物网站php模板百度网站怎么申请注册
  • 网络平台贷款逾期不还毕节地seo
  • 看汽车哪个网站好厦门百度广告
  • 小程序代理加盟前景搜狗seo
  • 青岛做网站报价seo搜索引擎优化主要做什么
  • 广州专业做网站多少钱google谷歌搜索主页
  • python和java做网站宁波正规优化seo价格
  • 广州商旅网站制作无锡百度seo优化
  • 网站备案基础知识中美关系最新消息
  • 做网站的cnfg整站seo服务
  • 昆山做网站优化微信公众号seo
  • wordpress下载代码秦皇岛seo排名
  • 静态网站开发课程相关新闻购物网站推广方案
  • 做网站 写脚本是什么中国旺旺(00151) 股吧
  • 淘宝客网站可以做百度推广百度代运营推广
  • 省住房城乡建设厅网站百度搜索指数1000是什么
  • 滕州做网站哪家好seo平台是什么意思
  • ueeshop外贸建站公司汕头seo外包公司
  • 1万流量网站 服务器配置搜索引擎网站优化推广
  • tp框架做购物网站开发培训方案
  • 葫芦岛网站建设seo高手培训
  • 手机网站如何建立上海网站快速排名优化
  • 网站建设设计说明石家庄今天最新新闻头条
  • 上什么网站做会计教育俄罗斯搜索引擎入口
  • 网站开发的未来发展趋势短视频广告投放平台