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

婚庆大气网站源码关键词seo教程

婚庆大气网站源码,关键词seo教程,旅游网站设计与实现,建网站需要多少费用4.1线性表的思路理解 线性表是包含若干个数据元素的一个线性序列 线性表特征:表头无前驱,表尾无后继,其他元素有且仅有一个直接前驱和直接后继。 顺序存储:逻辑上相邻的元素,其存储位置也相邻(但是对表的插入和删除) …

 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, last+1]
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   0<=pos<=Last+1   [0, last+1]
if (pos < 0 || pos > L->last+1) {
printf("Pos is invalid\n");
return -1;
}for(i = L->last; i >= pos;i--){
L->data[i+1] = 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 [pos+1, last]
for (i = pos+1; i <= L->last; i++) {
L->data[i-1] = L->data[i];
}
/*
for(i = pos; i< L->last;i++){
L->data[i] = L->data[i+1];
}
*/
//update
L->last--;
return 0;
// return ret;
}

http://www.dtcms.com/wzjs/495817.html

相关文章:

  • 不花钱做网站百一度一下你就知道
  • 先做网站再付款长沙seo排名外包
  • 在哪家网站做淘宝客最好杭州seo技术培训
  • 长春疫情最新消息今天新增一例广州王牌seo
  • 天河岗顶棠下上社网站建设市场营销公司排名
  • 做网站价钱推广哪个网站好
  • 快递网站推广怎么做百度人工客服电话
  • 毕业设计代做的网站网站seo优化工具
  • 工厂的网站在哪里做的seo是什么职业
  • 做网站需要上门服务吗宁波seo公司推荐
  • 小规模企业做网站长春网站推广排名
  • 广东省网站建设信息流投放平台
  • 京东网站建设的经费预算种子搜索神器
  • 想花钱做网站怎么做关键词搜索数据
  • 有什么做任务得佣金的网站新闻头条今日要闻国内
  • 网站飘窗怎样做西安百度seo推广电话
  • 做网站 (公司)seo外包公司优化
  • 银川网站建设怎么样2023第二波疫情已经到来
  • 网站建设最高管理权限济南seo的排名优化
  • 网站定制的公司百度下载应用
  • 百度站长怎么做网站维护电脑培训班速成班
  • 上海哪家公司提供专业的网站建设seo怎么做整站排名
  • 做企业英语网站要注意哪些地推拉新接单平台
  • 电子商务的网站建设大连seo网站推广
  • 在家做兼职的网站国内网络推广渠道
  • asp室内装修装潢网站源码建网站软件工具
  • 南昌做网站seo网络销售公司经营范围
  • 铜仁市住房和城乡建设局网站百度关键词优化教程
  • 备案域名绑定网站优化大师兑换码
  • 做商城型网站武汉大学人民医院