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

上海 建站商务型网站

上海 建站,商务型网站,什么企业网站能自己做,vps搭建网站教程4.1线性表的思路理解 线性表是包含若干个数据元素的一个线性序列 线性表特征#xff1a;表头无前驱#xff0c;表尾无后继#xff0c;其他元素有且仅有一个直接前驱和直接后继。 顺序存储#xff1a;逻辑上相邻的元素#xff0c;其存储位置也相邻(但是对表的插入和删除) … 4.1线性表的思路理解 线性表是包含若干个数据元素的一个线性序列 线性表特征表头无前驱表尾无后继其他元素有且仅有一个直接前驱和直接后继。 顺序存储逻辑上相邻的元素其存储位置也相邻(但是对表的插入和删除) 4.2线性表的创建 4.2.1结构体的构建 线性表的顺序存储结构 ctypedef int data_t;//int可以改成图书馆 #define N 128 typedef struct {data_t data[N];int last; }sqlist, *sqlink; last表示最后一个可能有100个数现在代表的就是有数据的最后一个元素其实就是一个下标。 4.2.2创建函数的实现 每一种数据结构 都会去定义这三个文件 sqlist.h 写数据结构定义 或结构体的定义(表的数组 last标记最后一个元素的位置) 增删改查各种运算接口 sqlist.c 运算的实现 test.c   直接去调用sqlist.h接口 接口去调用到sqlist.c函数原型里面实现 这样来写结构的好处 1 结构非常清晰 2 软件复用很好(可以将.c 和 .h 给其他同事或同学用 可以自己用 自己直接拿来调用.c和.h文件即可实现链表运算) 4.2.2.1 逻辑分析 1. 申请空间 2. 初始化 4.2.2.2 代码实现 sqlink list_create() {//mallocsqlink L; 4.3线性表的尾部插入 4.3.1逻辑分析 1. 判断是否为满 2. last往后移动一个位置 3. 赋值 //malloc需要头文件 #include stdlib.h 返回值void *(强制类型转换) 堆L (sqlink)malloc(sizeof(sqlist));if (L NULL) {printf(list malloc failed\n);return L; //失败 返回的是NULL 没有意义}//initialize 初始化//void *memset(void *s, int c, size_t n); 需要#include string.h|s起始地址 用 c去填充 n就是n个字节//从s开始的n个字节全部用c去填充memset(L, 0, sizeof(sqlist));L-last -1;//returnreturn L; } 4.3线性表的尾部插入 4.3.1逻辑分析 1. 判断是否为满 2. last往后移动一个位置 3. 赋值 4.3.2代码实现 int list_insert(sqlink L, data_t value) { int i; //full if (L-last N-1) { printf(list is full\n); return -1; } //update value last L-last; L-data[L-last] value; return 0; } 4.4线性表的打印 4.4.1逻辑分析 如何遍历顺序表 4.4.2 代码实现 1. 判断有没有表 2. 判断表是否为空 3. 通过last移动遍历打印 int list_show(sqlink L) { int i; if (L NULL) return -1; if (L-last -1) printf(list is empty\n); for (i 0; i L-last; i) { printf(%d , L-data[i]); } puts(); return 0; } 4.5线性表置空 4.5.1逻辑分析 1.首先判断表是否为空表 成功返回0 失败返回-1 2.置空 4.5.2 代码实现 int list_empty(sqlink L) { if(L NULL){ printf“list is empty\n” return -1 }memset(L, 0, sizeof(sqlist));L-last -1; } 4.6线性表的尾部删除 4.6.1逻辑分析 1、判断下它是否为空 2、last向左移动一下 4.6.2 代码实现 int list_delete(sqlink L) { int i; if (L-last -1) { printf(list is empty\n); return -1; } //update L-last--; return 0; } 4.7线性表的任意位置插入 4.6.1逻辑分析 1.首先判断表满没满 2.检查位置是否对 [0, last1] 3.整体往后移动 4.赋值 5.last往后移动一个位置 L-last; 4.6.2 代码实现 int list_insert(sqlink L, data_t value, int pos) { int i; //full if (L-last N-1) { printf(list is full\n); return -1; } //check para   0posLast1   [0, last1] if (pos 0 || pos L-last1) { printf(Pos is invalid\n); return -1; }for(i L-last; i pos;i--){ L-data[i1] L-data[i]; } //update value last L-data[pos] value; L-last; return 0; } 4.7线性表的任意位置删除 4.7.1逻辑分析 1. 判断下它是否为空 2. 判断删除的位置是否可以 [0, last] 3. 循环移动 4. last向左移一下 4.7.2 代码实现 int list_delete(sqlink L, int pos) { int i; if (L NULL) { //判断是不是空 printf(list is not exist\n); return -1; } if (L-last -1) { //判断是不是空 printf(list is empty\n); return -1; } //int ret ; ret L-data[pos]; //pos [0, last] || 满足其一就有问题 if (pos 0 || pos L-last) { printf(delete pos is invalid\n); return -1; } //move [pos1, last] for (i pos1; i L-last; i) { L-data[i-1] L-data[i]; } /* for(i pos; i L-last;i){ L-data[i] L-data[i1]; } */ //update L-last--; return 0; // return ret; }
http://www.yingshimen.cn/news/73812/

相关文章:

  • 国内特效比漂亮的网站哪个网站可以帮忙做简历
  • 电商网站建设的核心是什么找附近的装修公司
  • 门户网站建设专业球形网架公司
  • 网站如何添加百度商桥网站上做树状框架图用什么软件
  • 分类信息发布网站模板wordpress 收费主题
  • 网站建设与设计学了做什么的网站建设源码包
  • asp.net动态的网站开发中国建筑人才网简介
  • 广州天极营销型网站软件开发流程图片
  • 网站建设哪家性价比高wordpress新建页面不能保存路径
  • 哪些网站做免费送东西的广告手机版网页游戏
  • 企业网站备案需要礼品公司怎么做网站
  • 网站开发图片压缩上传报酬在线制作图片拼接
  • 浦东新区网站优化公司本地企业网站建设
  • 如何查询网站备案信息做网店去哪个网站货源好
  • 手机网站开发标准网站开发学习流程
  • 提高网站排名的软件单页网站制作
  • 江西医疗网站备案前置审批网站优化seo是什么
  • 给帅哥做奴视频网站地址青海网站建设价格低
  • 网站制作网站设计眉山市住房和城乡建设部网站
  • 快速学习网站建设企业网站seo哪里好
  • 网站开发设计过程动漫设计与制作学什么
  • wordpress收发邮件长沙建站seo公司
  • 简单网站html模板下载地址优化手机网站
  • 义乌外贸网站建设网站报备查询
  • 邯郸建设信息网站佛山制作网站公司
  • 站长平台网站二建证书查询官网入口
  • 企业网站作用怎么做网络推广最有效
  • 网站是做百度快照推广好wordpress升级注意
  • 网站权重排名花生壳免费域名注册
  • 交互网站建设需要做什么网站建设案例赏析