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

南京城乡建设网站公司做网站哪个好

南京城乡建设网站,公司做网站哪个好,jsp商务网站建设,apicloud和uniapp哪个好1. 顺序表的定义 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构#xff0c;一般情况下采用数组存储。动态顺序表与数组的本质区别是——根据需要动态的开辟空间大小。 2. 顺序表的功能 动态顺序表的功能一般有如下几个#xff1a; 初始化顺序表打印顺序…1. 顺序表的定义 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构一般情况下采用数组存储。动态顺序表与数组的本质区别是——根据需要动态的开辟空间大小。 2. 顺序表的功能 动态顺序表的功能一般有如下几个 初始化顺序表打印顺序表中的数据检查顺序表的容量顺序表头部插入数据顺序表尾部插入数据顺序表头部删除数据顺序表尾部删除数据顺序表任意位置插入数据顺序表任意位置删除数据顺序表中查找数据顺序表中修改指定位置数据顺序表的销毁 3.顺序表各功能的实现 3.1 创建顺序表 typedef int SQDateType;//对int进行重命名可增加代码的普适性。typedef struct SeqList {SQDateType* a;size_t size; //有效数据size_t capacity;//容量的空间大小 }SL;//对这个结构体重命名为SL书写方便 3.2 初始化顺序表 由于建立顺序表后并没有原始空间所以我们自行动态开辟空间又因为后续要进行扩容所以我们必须初始化容量大小。 void SeqListInit(SL*ps) {ps-a (SQDateType*)malloc(sizeof(SQDateType) * 4);//初始化开辟4个int类型的空间//检查是否开辟成功if (ps-a NULL){printf(malloc fail!\n);return;}ps-capacity 4;//初始化容量大小为4ps-size 0; } 3.3 打印顺序表中的数据 对顺序表进行增删查改等操作后我们要把数据打印在控制台以便观察。 void SeqListPrint(SL* ps) {//判断顺序表中是否有数据assert(ps-size 0);for (int i 0; i ps-size; i){printf(%d , ps-a[i]);}printf(\n); } 3.4 检查顺序表的容量 对顺序表进行插入增加数据的操作时我们必须先对顺序表进行容量的检查若容量不够则扩容。 并且扩容的幅度一般是原来容量的2倍。 void CheckSeqListCapacity(SL*ps) {assert(ps);//断言//检查容量是否已满if (ps-capacity ps-size){//扩容SQDateType* tmp (SQDateType*)realloc(ps-a, ps-capacity * 2 * sizeof(SQDateType*));if (tmp NULL){printf(realloc fail!\n);return;}else{ps-a tmp;ps-capacity * 2;//容量增大为原来的两倍}} } 3.5 顺序表头部插入数据 头插意思是在顺序表的最前面插入一个数据。我们需要把顺序表里的原数据如果原来有数据的话从后往前向后挪一个空间再把要插入的数据放到第一个位置即可。 代码实现如下 void SeqListPushFront(SL* ps, SQDateType x) {assert(ps);//检查是否要扩容CheckSeqListCapacity(ps);int end ps-size;for (end ps-size ; end 0; end--){ps-a[end] ps-a[end - 1];}ps-a[end] x;ps-size;//有效数据1 }3.6 顺序表尾部插入数据 尾插意思是在顺序表的最后面插入一个数据。只需要找到该位置的下标ps-size处)直接插入即可。 代码实现如下 void SeqListPushBack(SL* ps, SQDateType x) {assert(ps);//检查是否要扩容CheckSeqListCapacity(ps);ps-a[ps-size] x;ps-size;//有效数据1 }3.7 顺序表头部删除数据 头删意思是删除一个顺序表最前面的数据。只需把原数据从前往后开始向前覆盖一个空间即可。 代码实现如下 void SeqListPopFront(SL* ps) {assert(ps-size 0);//断言当顺序表内有数据时才删除for (int start 0; start ps-size; start){ps-a[start] ps-a[start 1];}ps-size--;//有效数据-1 }3.8 顺序表尾部删除数据 尾删直接删除顺序表中最后一个数据即可。 void SeqListPopBack(SL* ps) {assert(ps-size 0);ps-size--;//有效数据-1 }3.9 顺序表任意位置插入数据 在顺序表的pos位置处插入一个数据先要把pos处及其后面的原数据向后挪一个空间再把数据放入pos处。 代码实现如下 void SeqListInsert(SL* ps, int pos, SQDateType x) {assert(ps pos ps-size);//possize时才满足CheckSeqListCapacity(ps);int end ps-size ;for (end ps-size ; end pos; end--){ps-a[end] ps-a[end-1];}ps-a[pos] x;//在pos的位置放入数据ps-size;//有效数据1 }3.10 顺序表任意位置删除数据 在顺序表的pos位置处删除一个数据只要把pos处后面的数据向前覆盖一个空间。 代码实现如下 void SeqListEarse(SL* ps, int pos) {assert(ps pos ps-size);//possize时才满足int start pos;for (start pos; start ps-size; start){ps-a[start] ps-a[start 1];}ps-size--;//有效数据-1 }3.11 顺序表中查找数据 把顺序表中的数据循环遍历判断每个数据与查找数据是否相等若相等返回1否则返回-1。 int SeqListFind(SL* ps, SQDateType x) {assert(ps ps-size 0);//表中有数据时才能查找for (int i 0; i ps-size; i){if (ps-a[i] x){return 1;break;}}return -1; }3.12 顺序表中修改指定位置数据 只要在顺序表中找到指定位置把修改的值赋给它即可。 void SeqListModify(SL* ps, int pos, SQDateType x) {assert(ps pos ps-size);//要修改的位置要小于数据个数ps-a[pos] x; }3.13 顺序表的销毁 顺序表的空间的动态开辟的最后需要free释放空间避免造成空间泄漏。 void SeqListDestory(SL* ps) {free(ps-a);ps-a NULL;ps-capacity 0;ps-size 0; }4. 完整代码 SeqList.h #pragma once#include stdio.h #include stdlib.h #include assert.htypedef int SQDateType;typedef struct SeqList {SQDateType* a;size_t size; //有效数据size_t capacity;//容量的空间大小 }SL;//初始化顺序表 void SeqListInit(SL* ps);//头部插入数据 void SeqListPushFront(SL* ps, SQDateType x);//尾部插入数据 void SeqListPushBack(SL* ps, SQDateType x);//头部删除数据 void SeqListPopFront(SL* ps);//尾部删除数据 void SeqListPopBack(SL* ps);//任意位置插入数据 void SeqListInsert(SL* ps, int pos,SQDateType x);//任意位置删除数据 void SeqListEarse(SL* ps, int pos);//打印数据函数 void SeqListPrint(SL* ps);//查找数据 int SeqListFind(SL* ps, SQDateType x);//修改指定位置数据 void SeqListModify(SL* ps, int pos, SQDateType x);//销毁顺序表 void SeqListDestory(SL* ps);SeqList.c #define _CRT_SECURE_NO_WARNINGS #include SeqList.hvoid SeqListInit(SL*ps) {ps-a (SQDateType*)malloc(sizeof(SQDateType) * 4);//初始化开辟4个int类型的空间if (ps-a NULL){printf(malloc fail!\n);return;}ps-capacity 4;ps-size 0; }void CheckSeqListCapacity(SL*ps) {assert(ps);//检查容量是否已满if (ps-capacity ps-size){//扩容SQDateType* tmp (SQDateType*)realloc(ps-a, ps-capacity * 2 * sizeof(SQDateType*));if (tmp NULL){printf(realloc fail!\n);return;}else{ps-a tmp;ps-capacity * 2;}} }void SeqListPushFront(SL* ps, SQDateType x) {assert(ps);CheckSeqListCapacity(ps);int end ps-size;for (end ps-size ; end 0; end--){ps-a[end] ps-a[end - 1];}ps-a[end] x;ps-size; }void SeqListPrint(SL* ps) {//判断顺序表中是否有数据assert(ps-size 0);for (int i 0; i ps-size; i){printf(%d , ps-a[i]);}printf(\n); }void SeqListPushBack(SL* ps, SQDateType x) {CheckSeqListCapacity(ps);ps-a[ps-size] x;ps-size; }void SeqListPopFront(SL* ps) {assert(ps-size 0);for (int start 0; start ps-size; start){ps-a[start] ps-a[start 1];}ps-size--; }void SeqListPopBack(SL* ps) {assert(ps-size 0);ps-size--; }void SeqListInsert(SL* ps, int pos, SQDateType x) {assert(ps pos ps-size);CheckSeqListCapacity(ps);int end ps-size ;for (end ps-size ; end pos; end--){ps-a[end] ps-a[end-1];}ps-a[pos] x;ps-size; }void SeqListEarse(SL* ps, int pos) {assert(ps pos ps-size);int start pos;for (start pos; start ps-size; start){ps-a[start] ps-a[start 1];}ps-size--; }int SeqListFind(SL* ps, SQDateType x) {assert(ps ps-size 0);for (int i 0; i ps-size; i){if (ps-a[i] x){return 1;break;}}return -1; }void SeqListModify(SL* ps, int pos, SQDateType x) {assert(ps pos ps-size);ps-a[pos] x; }void SeqListDestory(SL* ps) {free(ps-a);ps-a NULL;ps-capacity 0;ps-size 0; }test.c #define _CRT_SECURE_NO_WARNINGS #include SeqList.hvoid SeqListTest() {SL sl;//在这里调用各数据接口函数进行测试 }int main() {SeqListTest();return 0; }
http://www.zqtcl.cn/news/777498/

相关文章:

  • 古典网站织梦模板云南app软件开发
  • 网页设计与网站建设期末考试wordpress文章页面图片自动适应
  • 网站建设费要交印花税吗国内ui网站
  • wordpress安装在本地专业seo网络推广
  • 农庄网站模板网络文化经营许可证图片
  • 微信做模板下载网站有哪些内容江苏省常州建设高等职业技术学校网站
  • 网站开发补充合同范本docker 部署wordpress
  • 学会了php的语法怎么做网站海外推广媒体
  • 东莞网站建设排行企业网站开发公司大全
  • wordpress商城必备软件重庆seo优化推广
  • 蚌埠百度做网站山东省无障碍网站建设标准
  • 平乡企业做网站流量精灵官网
  • 厦门做网站优化公司wordpress cx-udy
  • 做外汇门户网站WordPress推广返佣插件
  • c语言在线编程网站学生个人网页设计作品
  • 南阳网站排名优化报价wordpress视频付费
  • 政务新网站建设ipv6改造wordpress
  • 店招免费设计在线生成网站seo优化关键词快速排名上首页
  • 毕设做系统与网站答辩wordpress个人模板
  • 农家乐网站建设wordpress改变访问目录结构
  • 单位网站建设的重要性盐城城南建设局一局网站
  • 网站登录验证码显示不出来刘强东当年做网站读的什么书
  • 网站seo优化步骤动态ip可以做网站
  • 用自己电脑怎么做网站广州公司建站
  • 购物网站前端浮动特效怎么做常用开发工具
  • 网页设计与制作精品课程网站wordpress文章页禁止右键
  • 英迈思做网站做的怎样中国建设银行官方网站纪念币
  • 最专业的手机网站建设厦门建设厅网站
  • 贵州省建设工程质量检测协会网站c 网站开发类似优酷
  • 关于网站建设申请卢沟桥做网站的公司