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

阜新市建设学校官方网站大数据精准营销系统

阜新市建设学校官方网站,大数据精准营销系统,网页设计与制作课程建设规划方案,蚌埠建设网站公司顺序表的概念及结构 线性表 线性表是具有相同特征的数据结构的集合 物理结构 不一定连续 逻辑结构 连续 顺序表 顺序表是线性表的一种,顺序表的底层是数组 物理结构 连续 逻辑结构 连续 顺序表分类 静态顺序表 struct SeqList {int a…

顺序表的概念及结构

线性表

线性表是具有相同特征的数据结构的集合

物理结构 不一定连续

逻辑结构 连续

顺序表

顺序表是线性表的一种,顺序表的底层是数组                   

物理结构 连续

逻辑结构 连续

顺序表分类

静态顺序表

struct SeqList
{int arr[100];//定长数组int size;//顺序表当前有效的数据结构
};

动态顺序表

struct SeqList
{int* arr;int size;//有效数据个数int capacity;//空间大小
};

     

顺序表的实现

头文件

顺序表结构

创建顺序表

顺序表的初始化和销毁

顺序表扩容

顺序表的打印

头部插入删除 / 尾部插入删除

指定位置之前插入 / 删除

声明顺序表的方法
typedef int SLDataType;
//给int取别名,方便修改数组存储的数据类型
//例如将int类型修改为char类型,在.c文件中的int都要一一替换成chartypedef struct SeqList
{SLDataType* arr;int size;//有效数据个数int capacity;//空间大小   
}SL;//顺序表的初始化
void SLInit(SL* ps);//顺序表的销毁
void SLDestroy(SL* ps);//顺序表的打印
void SLPrint(SL s);//头部插入删除/尾部插入删除
void SLPushBack(SL* ps, SLDataType x);
void SLPushFront(SL* ps, SLDataType x);
void SLPopBack(SL* ps);
void SLPopFront(SL* ps);//在指定位置之前插入/删除数据
void SLInsert(SL* ps, int pos, SLDataType x);
void SLErase(SL* ps, int pos);
int SLFind(SL* ps, SLDataType x);

源文件

实现顺序表的方法 
//顺序表初始化
void SLInit(SL* ps)
{ps->arr = NULL;ps->size = ps->capacity = 0;}//顺序表都销毁
void SLDestroy(SL* ps)
{if (ps->arr){free(ps->arr);}ps->arr = NULL;ps->size = ps->capacity = 0;
}//顺序表打印
void SLPrint(SL s)
{for (int i = 0; i < s.size; i++){printf("%d", s.arr[i]);}printf("\n");
}//检查空间是否足够
void checkcapacity(SL* ps)
{if (ps->capacity == ps->size){//申请空间//malloc calloc realloc int arr[100]	增容reallocint newCapacity = ps->capacity == 0 ? 4 : 2 * ps->capacity;SLDataType* tmp = ps->arr = (SLDataType*)realloc(ps->arr, ps->capacity * 2 * sizeof(SLDataType));if (tmp == NULL){perror("realloc fail");exit(1);//直接退出程序}ps->arr = tmp;ps->capacity = newCapacity;}
}//尾插
void SLPushBack(SL* ps, SLDataType x)
{	//法一/*if (ps == NULL){return;}*///法二assert(ps);//等价于assert(ps != NULL)checkcapacity(ps);ps->arr[ps->size++] = x;//ps->arr[ps->size] = x;//++ps->size;
}//头插
void SLPushFront(SL* ps, SLDataType x)
{assert(ps);checkcapacity(ps);//先让已有数据后移一位for (int i = ps->size; i > 0; i--){ps->arr[i] = ps->arr[i - 1];//arr[1] = arr[0]}ps->arr[0] = x;ps->size++;
}//尾删
void SLPopBack(SL* ps)
{assert(ps);assert(ps->size);//顺序表不为空//ps->arr[ps->size - 1] - 1;ps->size--;
}//头删
void SLPopFront(SL* ps)
{assert(ps);assert(ps->size);for (int i = 0; i < ps->size - 1; i++){ps->arr[i] = ps->arr[i + 1];}ps->size--;
}//在指定位置之前插入数据
void SLInsert(SL* ps, int pos, SLDataType x)
{assert(ps);assert(pos >= 0 && pos < ps->size);//插入数据,空间够不够checkcapacity(ps);for (int i = ps->size; i>pos; i--){ps->arr[i] = ps->arr[i - 1];//arr[pos+1] = arr[pos]}ps->arr[pos] = x;ps->size++;}//删除指定位置前的数据
void SLErase(SL* ps, int pos)
{assert(ps);assert(pos >= 0 && pos < ps->size);for (int i = pos; i < ps->size; i++){ps->arr[i] = ps->arr[i + 1];}ps->size--;
}//查找
int SLFind(SL* ps, SLDataType x)
{assert(ps);for (int i = 0; i < ps->size; i++){if (ps->arr[i] == x){return i;}}return -1;
}
                                                                                                                                                                                                         
http://www.ds6.com.cn/news/54047.html

相关文章:

  • 个人做网站如何赚钱如何推广一款app
  • 长沙企业建站方案seo教学
  • 北京随喜设计网站青岛官网seo公司
  • 大兴快速网站建设公司东莞做网站seo
  • 网站做下载wordpress百度提交网站收录入口
  • 要建网站怎么做西安今日头条新闻
  • 昆山网站建设河北站长工具seo综合查询官网
  • php做网站的优势网址查询服务中心
  • 一个空间可以做两个网站吗青岛网站运营
  • wordpress正文宽度青岛seo关键词排名
  • WordPress页眉文件谷歌seo推广服务
  • wordpress 页面分级西安网站seo推广
  • 网站建设需要些什么软件免费培训课程
  • p2p网站建设方案广告代运营公司
  • 制作网站的公司不干了百度关键词是怎么排名靠前
  • 用PYTHON3 做网站网址查询ip地址
  • 用ps做商城网站好做吗百度托管运营哪家好
  • 做月季评分表的工程网站叫什么上海百度竞价托管
  • 网站免费广告营销策略有哪些
  • 网站建设预算申请表59软文网
  • 做网站绑定域名 解析域名友情链接方面pr的选择应该优先选择的链接为
  • 通州网站建设公司西安网站设计开发
  • 外贸网站优化软件微信crm客户管理系统
  • 网站dns如何修改不了网络推广的方法有哪些
  • 做棋牌推广网站违反不优化营商环境应当坚持什么原则
  • WordPress与其它吉林seo推广
  • 网站做整站做优化seo怎么学在哪里学
  • 建网站的支付安全关键词的选取原则有
  • 哪家网站建设最好自主建站
  • 网站设计案例公司上海还能推seo吗