顺序表实现(下)(C语言)

几道相关例题,帮助大家更好理解顺序表.

文章目录

前言

  • 一、顺序表
  • 二、创建顺序表并初始化
  • 三.删除非递减顺序表L中的重复元素
  • 四.在非递减顺序表中删除[s,t]之间的元素
  • 五.设计算法逆置顺序表L,并将序列L循环左移
  • 六.顺序表A和B的元素个数分别为m,n.A表升序排序,B表降序排序,两表中都不存在相同元素
  • 七.给定两个非空集合A和B,分别用升序顺序表La,Lb存储,设计算法求解A交B 
  • 八.给定两个非空集合A和B,分别用升序表La与Lb存储,设计算法求解A-B(A中元素减去B中有的元素)
  • 九.测试
  • 总结


前言

几道相关例题,帮助大家更好理解顺序表.


一、顺序表

typedef int Elemtype;
//顺序表的动态分配
typedef struct Sqlist {Elemtype* qlist;int length;int maxsize;
};
//定义打印顺序表函数
void print(Sqlist L) {for (int i = 0; i < L.length; i++) {//顺序遍历顺序表printf("%d ", L.qlist[i]);}printf("\n顺序表长度为:%d\n", L.length);printf("总大小为:%d\n", L.maxsize);
}

二、创建顺序表并初始化

//例1:定义创建顺序表并初始化函数
void InitSqlist(Sqlist& L) {//初始化空间为20,长度为15,{ 0,1,2,3,4,4,4,5,6,7,7,8,8,9,9 }L.maxsize = Max;L.length = 15;int arr[15] = { 0,1,2,3,4,4,4,5,6,7,7,8,8,9,9 };L.qlist = (Elemtype*)malloc(sizeof(Elemtype) * (L.maxsize));for (int i = 0; i < L.length; i++) {L.qlist[i] = arr[i];}
}

 三.删除非递减顺序表L中的重复元素

//例6:删除非递减顺序表L中的重复元素
void deletesame(Sqlist &L) {int curlenth = 0;for (int i = 0; i < L.length; i++) {//每次区元素与新表最后一个元素进行比较如果不相等加入新表if (curlenth == 0 || L.qlist[i] != L.qlist[curlenth - 1]) {L.qlist[curlenth++] = L.qlist[i];}}L.length = curlenth;
}

四.在非递减顺序表中删除[s,t]之间的元素

//例7:在非递减顺序表中删除[s,t]之间的元素
void deletest2(Sqlist& L, int s, int t) {int curlength = 0;int i = 0;for (; i < L.length; i++) {//从前往后找第一个大于或等于s的元素的位置if (L.qlist[i] >= s) {break;}}curlength = i;i = L.length - 1;for (; i >= 0; i--) {//从后往前找第一个小于或等于t的元素的位置if (L.qlist[i] <= t) {break;}}i= i + 1;//指向下一个元素才是要复制的元素for (;  i< L.length; i++) {//复制元素L.qlist[curlength++] = L.qlist[i];}L.length = curlength;
}

 五.设计算法逆置顺序表L,并将序列L循环左移

//例8:设计算法逆置顺序表L,并将序列L循环左移
//定义逆置函数
void reverse1(Sqlist& L) {int low = 0;int high = L.length - 1;while (low < high) {//设置low和high指针对表中元素进行两两交换Elemtype tmp = L.qlist[low];L.qlist[low] = L.qlist[high];L.qlist[high] = tmp;low++;high--;}
}
void reverse2(Sqlist& L,int low ,int high) {while (low < high) {Elemtype tmp = L.qlist[low];L.qlist[low] = L.qlist[high];L.qlist[high] = tmp;low++;high--;}
}
void ROL(Sqlist &L, int r) {reverse2(L, 0, L.length - 1);//整体逆置reverse2(L, 0, r-1);//前r个元素逆置reverse2(L, r, L.length - 1);//后面元素逆置
}

 reverse1是直接将顺序表全部逆置,reverse2是给定起始和终止逆置.

顺序表的循环左移r位,就是先整体逆置,前r个元素逆置,后面元素逆置.

六.顺序表A和B的元素个数分别为m,n.A表升序排序,B表降序排序,两表中都不存在相同元素

(1)将两表合并,两表中元素都储存在C中

(2)表A有m+n个存储空间,将A,B两表合并所有元素都存储到A中

(3)对表A进行简单插入排序

//例9:顺序表A和B的元素个数分别为m,n.A表升序排序,B表降序排序,两表中都不存在相同元素
//(1)将两表合并,两表中元素都储存在C中
//创建La和Lb
void creatLaLb(Sqlist& La, Sqlist& Lb) {La.maxsize = 11;La.length = 6;int arr1[6] = { 0,2,4,7,8,9 };La.qlist = (Elemtype*)malloc(sizeof(Elemtype) * (La.maxsize));for (int i = 0; i < La.length; i++) {La.qlist[i] = arr1[i];}Lb.maxsize = 11;Lb.length = 5;int arr2[5] = { 10,6,5,3,1 };Lb.qlist = (Elemtype*)malloc(sizeof(Elemtype) * (Lb.maxsize));for (int i = 0; i < Lb.length; i++) {Lb.qlist[i] = arr2[i];}
}
//归并排序思想
void mergesort1(Sqlist& La, Sqlist& Lb, Sqlist& Lc) {int length = La.length + Lb.length;Lc.qlist = (Elemtype*)malloc(sizeof(Elemtype) * length);assert(Lc.qlist);Lc.maxsize = length;int curlength = 0;int i = 0;int j = Lb.length-1;while (i < La.length && j >=0) {if (La.qlist[i] > Lb.qlist[j]) {Lc.qlist[curlength] = Lb.qlist[j];curlength++;j--;}else {Lc.qlist[curlength] = La.qlist[i];curlength++;i++;}}while (i < La.length) {Lc.qlist[curlength++] = Lb.qlist[i];i++;}while (j >=0) {Lc.qlist[curlength++] = Lb.qlist[j];j--;}Lc.length = curlength;
}
//(2)表A有m+n个存储空间,将A,B两表合并所有元素都存储到A中
void mergesort2(Sqlist& La, Sqlist& Lb) {int curlength = 0;int i = La.length-1;//A表后int j = 0;//B表头while (i >= 0 && j < Lb.length) {//将A表与B表元素进行比较将大的存入A表后if (La.qlist[i] > Lb.qlist[j]) {La.qlist[La.maxsize - curlength - 1] = La.qlist[i];curlength++;i--;}else {La.qlist[La.maxsize - curlength - 1] = Lb.qlist[j];curlength++;j++;}}while (i >= 0) {//将A表剩余元素直接复制到A表中La.qlist[La.maxsize - curlength - 1] = La.qlist[i];curlength++;i--;}while (j < Lb.length) {//将B表剩余元素直接复制到A表中La.qlist[La.maxsize - curlength - 1] = Lb.qlist[j];curlength++;j++;}La.length = La.length + Lb.length;
}
//(3)对表A进行简单插入排序
void selectsort(Sqlist& L) {int i = 0;int j = 0;while (i < L.length) {//每次选取一个元素Elemtype e = L.qlist[i];j = i - 1;while (j >= 0 && e < L.qlist[j]) {//寻找插入位置L.qlist[j + 1] = L.qlist[j];j--;}L.qlist[j + 1] = e;i++;}
}

七.给定两个非空集合A和B,分别用升序顺序表La,Lb存储,设计算法求解A交B 

//例10:给定两个非空集合A和B,分别用升序顺序表La,Lb存储,设计算法求解A交B
//创建两个升序La表和Lb表
void creatLaLb2(Sqlist& La, Sqlist& Lb) {La.maxsize = 20;La.length = 11;int arr1[11] = { 1,1,2,2,3,3,4,4,5,5,6 };La.qlist = (Elemtype*)malloc(sizeof(Elemtype) * (La.maxsize));for (int i = 0; i < La.length; i++) {La.qlist[i] = arr1[i];}Lb.maxsize = 20;Lb.length = 11;int arr2[11] = { 1,1,2,2,4,4,5,5,6,6,7 };Lb.qlist = (Elemtype*)malloc(sizeof(Elemtype) * (Lb.maxsize));for (int i = 0; i < Lb.length; i++) {Lb.qlist[i] = arr2[i];}
}
//求解A交B
void intersect(Sqlist &La,Sqlist &Lb) {int curlength = 0;int i = 0;int j = 0;while (i < La.length && j < Lb.length) {//A表和B表元素进行两两比较如果相等加入新表if (La.qlist[i] == Lb.qlist[j]) {La.qlist[curlength] = La.qlist[i];i++;j++;curlength++;}else if(La.qlist[i] > Lb.qlist[j]) {//B表当前元素小于表A当前元素B表下表加一j++;}else {//A表当前元素小于表B当前元素A表下表加一i++;}}La.length = curlength;//元素个数改变
}

 八.给定两个非空集合A和B,分别用升序表La与Lb存储,设计算法求解A-B(A中元素减去B中有的元素)

//例11:给定两个非空集合A和B,分别用升序表La与Lb存储,设计算法求解A-B(A中元素减去B中有的元素)
//算法思想跟上一题一样
void except(Sqlist& La, Sqlist& Lb) {int curlength = 0;int i = 0;int j = 0;while (i < La.length && j < Lb.length) {if (La.qlist[i] == Lb.qlist[j]) {//相等下标都相加i++;j++;}else if (La.qlist[i] > Lb.qlist[j]) {//a>b,B下标增加j++;}else {//a<b说明当前A中元素一定是B中没有的La.qlist[curlength] = La.qlist[i];curlength++;i++;}}while (i < La.length) {//将A表剩余元素复制到新表La.qlist[curlength] = La.qlist[i];curlength++;i++;}La.length = curlength;//元素个数改变
}

九.测试

全部代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<malloc.h>
#include<assert.h>
#define Max 20typedef int Elemtype;
//顺序表的动态分配
typedef struct Sqlist {Elemtype* qlist;int length;int maxsize;
};
//定义打印顺序表函数
void print(Sqlist L) {for (int i = 0; i < L.length; i++) {//顺序遍历顺序表printf("%d ", L.qlist[i]);}printf("\n顺序表长度为:%d\n", L.length);printf("总大小为:%d\n", L.maxsize);
}//例1:定义创建顺序表并初始化函数
void InitSqlist(Sqlist& L) {//初始化空间为20,长度为15,{ 0,1,2,3,4,4,4,5,6,7,7,8,8,9,9 }L.maxsize = Max;L.length = 15;int arr[15] = { 0,1,2,3,4,4,4,5,6,7,7,8,8,9,9 };L.qlist = (Elemtype*)malloc(sizeof(Elemtype) * (L.maxsize));for (int i = 0; i < L.length; i++) {L.qlist[i] = arr[i];}
}
//例6:删除非递减顺序表L中的重复元素
void deletesame(Sqlist &L) {int curlenth = 0;for (int i = 0; i < L.length; i++) {//每次区元素与新表最后一个元素进行比较如果不相等加入新表if (curlenth == 0 || L.qlist[i] != L.qlist[curlenth - 1]) {L.qlist[curlenth++] = L.qlist[i];}}L.length = curlenth;
}
//例7:在非递减顺序表中删除[s,t]之间的元素
void deletest2(Sqlist& L, int s, int t) {int curlength = 0;int i = 0;for (; i < L.length; i++) {//从前往后找第一个大于或等于s的元素的位置if (L.qlist[i] >= s) {break;}}curlength = i;i = L.length - 1;for (; i >= 0; i--) {//从后往前找第一个小于或等于t的元素的位置if (L.qlist[i] <= t) {break;}}i= i + 1;//指向下一个元素才是要复制的元素for (;  i< L.length; i++) {//复制元素L.qlist[curlength++] = L.qlist[i];}L.length = curlength;
}
//例8:设计算法逆置顺序表L,并将序列L循环左移
//定义逆置函数
void reverse1(Sqlist& L) {int low = 0;int high = L.length - 1;while (low < high) {//设置low和high指针对表中元素进行两两交换Elemtype tmp = L.qlist[low];L.qlist[low] = L.qlist[high];L.qlist[high] = tmp;low++;high--;}
}
void reverse2(Sqlist& L,int low ,int high) {while (low < high) {Elemtype tmp = L.qlist[low];L.qlist[low] = L.qlist[high];L.qlist[high] = tmp;low++;high--;}
}
void ROL(Sqlist &L, int r) {reverse2(L, 0, L.length - 1);//整体逆置reverse2(L, 0, r-1);//前r个元素逆置reverse2(L, r, L.length - 1);//后面元素逆置
}
//例9:顺序表A和B的元素个数分别为m,n.A表升序排序,B表降序排序,两表中都不存在相同元素
//(1)将两表合并,两表中元素都储存在C中
//创建La和Lb
void creatLaLb(Sqlist& La, Sqlist& Lb) {La.maxsize = 11;La.length = 6;int arr1[6] = { 0,2,4,7,8,9 };La.qlist = (Elemtype*)malloc(sizeof(Elemtype) * (La.maxsize));for (int i = 0; i < La.length; i++) {La.qlist[i] = arr1[i];}Lb.maxsize = 11;Lb.length = 5;int arr2[5] = { 10,6,5,3,1 };Lb.qlist = (Elemtype*)malloc(sizeof(Elemtype) * (Lb.maxsize));for (int i = 0; i < Lb.length; i++) {Lb.qlist[i] = arr2[i];}
}
//归并排序思想
void mergesort1(Sqlist& La, Sqlist& Lb, Sqlist& Lc) {int length = La.length + Lb.length;Lc.qlist = (Elemtype*)malloc(sizeof(Elemtype) * length);assert(Lc.qlist);Lc.maxsize = length;int curlength = 0;int i = 0;int j = Lb.length-1;while (i < La.length && j >=0) {if (La.qlist[i] > Lb.qlist[j]) {Lc.qlist[curlength] = Lb.qlist[j];curlength++;j--;}else {Lc.qlist[curlength] = La.qlist[i];curlength++;i++;}}while (i < La.length) {Lc.qlist[curlength++] = Lb.qlist[i];i++;}while (j >=0) {Lc.qlist[curlength++] = Lb.qlist[j];j--;}Lc.length = curlength;
}
//(2)表A有m+n个存储空间,将A,B两表合并所有元素都存储到A中
void mergesort2(Sqlist& La, Sqlist& Lb) {int curlength = 0;int i = La.length-1;//A表后int j = 0;//B表头while (i >= 0 && j < Lb.length) {//将A表与B表元素进行比较将大的存入A表后if (La.qlist[i] > Lb.qlist[j]) {La.qlist[La.maxsize - curlength - 1] = La.qlist[i];curlength++;i--;}else {La.qlist[La.maxsize - curlength - 1] = Lb.qlist[j];curlength++;j++;}}while (i >= 0) {//将A表剩余元素直接复制到A表中La.qlist[La.maxsize - curlength - 1] = La.qlist[i];curlength++;i--;}while (j < Lb.length) {//将B表剩余元素直接复制到A表中La.qlist[La.maxsize - curlength - 1] = Lb.qlist[j];curlength++;j++;}La.length = La.length + Lb.length;
}
//(3)对表A进行简单插入排序
void selectsort(Sqlist& L) {int i = 0;int j = 0;while (i < L.length) {//每次选取一个元素Elemtype e = L.qlist[i];j = i - 1;while (j >= 0 && e < L.qlist[j]) {//寻找插入位置L.qlist[j + 1] = L.qlist[j];j--;}L.qlist[j + 1] = e;i++;}
}
//例10:给定两个非空集合A和B,分别用升序顺序表La,Lb存储,设计算法求解A交B
//创建两个升序La表和Lb表
void creatLaLb2(Sqlist& La, Sqlist& Lb) {La.maxsize = 20;La.length = 11;int arr1[11] = { 1,1,2,2,3,3,4,4,5,5,6 };La.qlist = (Elemtype*)malloc(sizeof(Elemtype) * (La.maxsize));for (int i = 0; i < La.length; i++) {La.qlist[i] = arr1[i];}Lb.maxsize = 20;Lb.length = 11;int arr2[11] = { 1,1,2,2,4,4,5,5,6,6,7 };Lb.qlist = (Elemtype*)malloc(sizeof(Elemtype) * (Lb.maxsize));for (int i = 0; i < Lb.length; i++) {Lb.qlist[i] = arr2[i];}
}
//求解A交B
void intersect(Sqlist &La,Sqlist &Lb) {int curlength = 0;int i = 0;int j = 0;while (i < La.length && j < Lb.length) {//A表和B表元素进行两两比较如果相等加入新表if (La.qlist[i] == Lb.qlist[j]) {La.qlist[curlength] = La.qlist[i];i++;j++;curlength++;}else if(La.qlist[i] > Lb.qlist[j]) {//B表当前元素小于表A当前元素B表下表加一j++;}else {//A表当前元素小于表B当前元素A表下表加一i++;}}La.length = curlength;//元素个数改变
}
//例11:给定两个非空集合A和B,分别用升序表La与Lb存储,设计算法求解A-B(A中元素减去B中有的元素)
//算法思想跟上一题一样
void except(Sqlist& La, Sqlist& Lb) {int curlength = 0;int i = 0;int j = 0;while (i < La.length && j < Lb.length) {if (La.qlist[i] == Lb.qlist[j]) {//相等下标都相加i++;j++;}else if (La.qlist[i] > Lb.qlist[j]) {//a>b,B下标增加j++;}else {//a<b说明当前A中元素一定是B中没有的La.qlist[curlength] = La.qlist[i];curlength++;i++;}}while (i < La.length) {//将A表剩余元素复制到新表La.qlist[curlength] = La.qlist[i];curlength++;i++;}La.length = curlength;//元素个数改变
}
int main() {printf("+++++++++++++++++++++++++++++++++++++++\n");printf("对InitSqlist进行测试!\n");Sqlist L;InitSqlist(L);print(L);//打印顺序表以及信息printf("+++++++++++++++++++++++++++++++++++++++\n");printf("对deletesame进行测试!\n");deletesame(L);print(L);InitSqlist(L);printf("+++++++++++++++++++++++++++++++++++++++\n");printf("对deletest2进行测试!\n");deletest2(L, 4, 7);print(L);InitSqlist(L);printf("+++++++++++++++++++++++++++++++++++++++\n");printf("对reverse2进行测试!\n");reverse1(L);print(L);InitSqlist(L);reverse2(L, 0, L.length - 1);print(L);InitSqlist(L);printf("+++++++++++++++++++++++++++++++++++++++\n");printf("对ROL进行测试!\n");print(L);ROL(L,3);print(L);InitSqlist(L);printf("+++++++++++++++++++++++++++++++++++++++\n");printf("对例8进行测试!\n");Sqlist La,Lb,Lc;printf("创建La和Lb顺序表\n");creatLaLb(La, Lb);print(La);print(Lb);printf("归并La和Lb顺序表\n");mergesort1(La, Lb, Lc);print(Lc);printf("归并La和Lb顺序表用原空间\n");mergesort2(La, Lb);print(La);print(Lb);creatLaLb(La, Lb);//初始化一下Sqlist LA;LA.maxsize = Max;LA.length = 12;int arr[12] = { 3,6,2,1,7,8,4,5,9,10,12,11 };LA.qlist = (Elemtype*)malloc(sizeof(Elemtype) * (LA.maxsize));for (int i = 0; i < L.length; i++) {LA.qlist[i] = arr[i];}print(LA);printf("对表A进行简单选择插入排序!\n");selectsort(LA);print(LA);printf("+++++++++++++++++++++++++++++++++++++++\n");printf("对例10进行测试!\n");creatLaLb2(La, Lb);print(La);print(Lb);intersect(La, Lb);print(La);printf("+++++++++++++++++++++++++++++++++++++++\n");printf("对例11进行测试!\n");creatLaLb2(La, Lb);print(La);print(Lb);except(La, Lb);print(La);return 0;}

 输出结果:


总结

写了几个经典的顺序表的题目,有些函数作用是创建表的,可以省略,主要是解决问题的思路和方法,输出结果比较常所以我分成了两张图片,大家自行比对,或者直接复制代码上机运行,有问题的地方可以私信我.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/606402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库系统原理总结之——数据库系统概述

数据库系统概述 第一章 数据库系统概述一、数据库基本概念二、数据库管理技术的发展三、数据库系统的三级模式结构四、数据库系统的运行与应用结构五、数据模型的分类 第一章 数据库系统概述 一、数据库基本概念 数据&#xff08;Data&#xff09; &#xff1a;描述事务的符号…

12306 抢票的糟糕体验

又到了一年一度的 12306 抢票时&#xff0c;和秒杀&#xff0c;抢购一样&#xff0c;这种事往往给人的体验非常差&#xff0c;去年经历过上海四月的应该深有感触。 我此前论述过随着网络带宽增加的速度超过 buffer 容量增加的速度&#xff0c;端到端拥塞控制将越来越不起作用&a…

【Leetcode】239.滑动窗口最大值(Hard)

一、题目 1、题目描述 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3 输出:[…

AI变现项目:刚做五天收益突破单日破50+,干货经验谈

今日是我单号操作的第五天。 打开今日头条&#xff0c;发现收益破新高了。 我这是一个号操作&#xff0c;10个号&#xff0c;20个号呢&#xff1f; 下面主要说说我的操作经验。 先确定领域 我是做的情感故事领域。 为什么做这个领域&#xff1f;(简单&#xff0c;原创度高…

家用洗地机哪款好用?洗地机品牌排行榜推荐

在如今的日常生活中&#xff0c;家用洗地机已经成为了家庭清洁中不可或缺的工具。然而&#xff0c;市面上各种不同品牌型号的洗地机让人眼花缭乱&#xff0c;让人难以选择。那么&#xff0c;家用洗地机现在买什么牌子质量好呢?为了解答这个问题&#xff0c;笔者选了几款品牌质…

120°AGV|RGV小车激光障碍物传感器|避障雷达DE系列安装与连线方法

120AGV|RGV小车激光障碍物传感器|避障雷达DE系列包含DE-4211、DE-4611、DE-4311、DE-4511等型号&#xff0c;根据激光飞行时间&#xff08;TOF&#xff09;测量原理运行的&#xff0c;利用激光光束对周围进行 120 半径 4m&#xff08;90%反射率&#xff09;扫描&#xff0c;获得…

鸿蒙开发解决agconnect sdk not initialized. please call initialize()

文章目录 项目场景:问题描述原因分析:解决方案:总结:项目场景: 鸿蒙开发报错: agconnect sdk not initialized. please call initialize() 问题描述 报错内容为: 10-25 11:41:01.152 6076-16676 E A0c0d0/JSApp: app Log: 数据查询失败: {“code”:1100001,“messag…

Linux的Inode号和日志服务管理

目录 一、Inode号 1.inode和block 2.查看inode信息 二、日志服务管理 1.日志的级别 2.日志的种类 3.日志的功能和日志文件的分类 4.日志的格式和分析工具 三、rsyslog日志处理系统 1、使用Rsyslog创建日志优点 2、Rsyslog配置文件解析 3.通过rsyslog将ssh服务的日志…

基于sigma-delta和MASHIII调制器的频率合成器simulink建模与仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 Sigma-Delta调制器原理 4.2 数学模型 4.3 噪声整形 4.4 MASH III调制器原理 4.5 基于Sigma-Delta和MASH III的频率合成器 5.算法完整程序工程 1.算法运行效果图预览 其误差当系统进…

Django(五)

员工管理系统(部门管理) 1.新建项目 2.创建app python manage.py startapp app012.1 注册app 3. 设计表结构&#xff08;django&#xff09; from django.db import modelsclass Department(models.Model):"""部门表"""title models.CharFiel…

sentinel相关问题及答案(2024)

数据结构和算法 1、什么是哨兵值&#xff1f;它在算法中是如何使用的&#xff1f; 哨兵值是在计算中用作标记或信号的特殊值&#xff0c;通常用于指示数据结构的边界或结束&#xff0c;或者作为检测特定条件的触发器。在算法中&#xff0c;哨兵值的使用可以简化代码并提高效…

熟悉HBase常用操作

1. 用Hadoop提供的HBase Shell命令完成以下任务 (1)列出HBase所有表的相关信息,如表名、创建时间等。 启动HBase: cd /usr/local/hbase bin/start-hbase.sh bin/hbase shell列出HBase所有表的信息: hbase(main):001:0> list(2)在终端输出指定表的所有记录数据。 …

数据通讯平台建设方案(物联网数据采集平台)

1.数据通讯平台 软件开发全资料获取&#xff1a;软件项目开发全套文档下载_软件项目技术实现文档-CSDN博客 1.1.1.系统概述 对不同的数据协议、数据模式进行采集适配。基于XX智慧平台统一数据交换标准&#xff0c;与第三方系统对接&#xff0c;实现数据交换&#xff1b;实现不…

【金猿CIO展】是石科技CIO侯建业:算力产业赋能,促进数字经济建设

‍ 侯建业 本文由是石科技CIO侯建业撰写并投递参与“数据猿年度金猿策划活动——2023大数据产业年度优秀CIO榜单及奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 是石科技&#xff08;江苏&#xff09;有限公司成立于2021年&#xff0c;由国家超级计算无锡中心与…

ECharts 实现省份在对应地图的中心位置

使用 ECharts 下载的中国省市区的json文件不是居中的(如下图所示)&#xff0c;此时需要修改json文件中的 cp 地理位置&#xff0c;设置成每个省份的中心位置 {"type": "FeatureCollection","features":[{ "type": "Feature"…

flask web学习之模板(二)

文章目录 一、模板结构组织1.1 局部模板1.2 宏1.3 模板继承 二、模板进阶2.1 空白控制2.2 加载静态文件2.3 消息闪现2.4 自定义错误页面2.5 在js和css中使用Jinja2 一、模板结构组织 1.1 局部模板 当多个独立模板中都会使用同一块HTML代码时&#xff0c;我们可以把这部分代码…

牛客刷题:BC45 小乐乐改数字(中等)

自我介绍&#xff1a;一个脑子不好的大一学生&#xff0c;c语言接触还没到半年&#xff0c;若涉及到效率等问题&#xff0c;各位都可以在评论区提出见解&#xff0c;谢谢啦。 该账号介绍&#xff1a;此帐号会发布游戏&#xff08;目前还只会简单小游戏&#xff09;&#xff0c…

如何在 NestJS 中使用 TypeORM 实现多数据库连接配置

前言 当你打算在一个 NestJS 应用中操作多个数据库时&#xff0c;TypeORM 提供了优雅而强大的解决方案。在本教程中&#xff0c;我们将一步步了解如何在 NestJS 项目中配置 TypeORM 以使用多个数据库。 实现步骤 一、创建 NestJS 项目 如果你还没有一个 NestJS 项目&#x…

P9 视频码率及其码率控制方式

前言 从本章开始我们将要学习嵌入式音视频的学习了 &#xff0c;使用的瑞芯微的开发板 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类&#xff09;_C…