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

企业电子商务网站开发实验报告朝阳seo搜索引擎

企业电子商务网站开发实验报告,朝阳seo搜索引擎,一家专做特卖的网站,建站平台客服一. 前言 1. 数据结构 数据结构是计算机存储、组织数据的方式。 二. 顺序表 2.1 顺序表的概念和结构 2.1.1 线性表 -线性表是具有相同特性的数据结构的集合。(常见线性表:顺序表、栈、队列、字符串...) -线性表有两种结构&#xff0c…

一.  前言

1. 数据结构

数据结构是计算机存储、组织数据的方式。

二. 顺序表

2.1 顺序表的概念和结构

2.1.1 线性表

-线性表是具有相同特性的数据结构的集合。(常见线性表:顺序表、栈、队列、字符串...)

-线性表有两种结构,分别是物理结构逻辑结构

-线性表的物理结构不一定连续,但是逻辑结构是连续的。

-线性表在逻辑上是线性结构,也就是说是连续的一条直线

-而顺序表是线性表的一种,顺序表的物理结构和逻辑结构全是连续的。

2.2 顺序表的分类

-顺序表的底层结构是数组,对于数组的封装,实现了常用的增删改查等接口。

-顺序表分为静态顺序表动态顺序表

2.2.1 静态顺序表

静态顺序表是使用定长数组存储元素

代码创建:

//静态顺序表的创建
struct SeqList
{int arr[10];//定数组int size;//有效元素的个数int capaciity;//开辟空间的大小
};

 缺点:空间固定了,太小不够用,太大空间浪费

2.2.2 动态顺序表

代码创建:

//动态顺序表的创建,并顺便将结构体重命名为SL
typedef struct S
{SLDateType* arr;//指向数组的指针int size;//有效数据个数int capacity;//开辟的空间大小
}SL;

优点:空间可改变,不会被限制

所以一般我们创建顺序表都是创建动态顺序表

2.3 动态顺序表的实现

2.3.1 初始化

首先在SeqList.h的头文件进行函数的声明

//动态顺序表的初始化
void SLInit(SL* ps);

再在SeqList.c的源文件进行函数的实现:

//动态顺序表的初始化
void SLInit(SL* ps) //注意此处是传地址,不是传值
{ps->arr = NULL;ps->size = ps->capacity = 0;
}
//传地址是因为初始化需要改变实际参数的数值
// 而传值没有权限改变实际参数的数值

然后在add.c的实际运行源文件中进行函数的使用:

SL sl;
SLInit(&sl);

2.3.2 销毁

SeqList.h:

//动态顺序表的销毁
void SLDestroy(SL* ps);

SeqList.c

//动态顺序表的销毁
void SLDestroy(SL* ps)
{if (ps->arr)//判断申请的数组是否有空间{free(ps);}ps->arr = NULL;ps->size = ps->capacity = 0;
}

2.3.3 尾插

继续和上述一样,在头文件进行声明

SeqList.c:

//尾插
void SLPushBack(SL* ps, SLDataType x)
{//如果输入的指针是空指针//第一种判断方式/*if (ps){return;}*///直接返回//或者第二种判断方式assert(ps);//直接报错//看空间够不够if (ps->capacity == ps->size){//空间不够//申请空间int newcapacity = ps->capacity = 0 ? 4 : 2 * ps->capacity;//判断capacity是否为0SLDataType* temp = (SLDataType*)realloc(ps->arr, newcapacity * sizeof(SLDataType);if (temp == NULL)//检查是否增容成功{perror("realloc files");exit(1);}//增容成功后ps->capacity = newcapacity;ps->arr = temp;ps->arr[ps->size++] = x;}}

注意注释,仔细注意细节,说明了很多坑。

2.3.4 头插

SeqList.c:

//头插
void SLPushFront(SL* ps, SLDataType x)
{assert(ps);SLCheckCapacity(ps);int i = 0;for (i = 0; i > 0; i--){ps->arr[i] = ps->arr[i - 1];}ps->arr[0] = x;ps->size++;//只要插入数据,就不要忘了size++(扩容内存)
}

其中的SLCheckCapacity(ps)函数是检查内存是否够用的整合:

void SLCheckCapacity(SL*ps)//检查空间
{if (ps->capacity == ps->size){//空间不够//申请空间int newcapacity = ps->capacity = 0 ? 4 : 2 * ps->capacity;//判断capacity是否为0SLDataType* temp = (SLDataType*)realloc(ps->arr, newcapacity * sizeof(SLDataType);if (temp == NULL)//检查是否增容成功{perror("realloc files");exit(1);}}}

2.3.5 尾删

函数实现:

//尾删
void SLPopBack(SL* ps)
{assert(ps);assert(ps->size);//防止顺序表为空--ps->size;
}

2.3.6 前删

函数实现:

//前删
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]; //arr[size-2] = arr[size-1]}ps->size--;
}

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

相关文章:

  • 规则网站建设谷歌怎么推广自己的网站
  • 商城网站方案模板今日新闻头条大事
  • 如何一键建淘宝客网站成人短期技能培训
  • 做司法考试真题的网站云优化软件
  • 力博彩票网站开发蓝牙耳机网络营销推广方案
  • 模板网站建设教程视频教程网站搭建软件
  • 一个人可以完成网站建设吗淘宝店铺推广方法
  • 做网站建设的前景最新推广方法
  • 嘉兴五县两区网站建设推广网站制作
  • 已收录的网站不好优化百度关键词权重查询
  • 武汉经营性网站备案流程百度推广软件
  • 海报设计大赛seopc流量排行榜企业
  • seo查询整站友情链接只有链接
  • 价格划算的做网站搜索引擎优化好做吗
  • 建网站免费域名seo培训机构哪家好
  • 如何把做的网站与域名连接不上网站权重
  • 长沙网站设计多少钱一个月百度付费推广
  • dede后台做两个网站爱站网注册人查询
  • 网站登录注册怎么做的百度游戏排行榜
  • 龙岩网站报价北京seo助理
  • 建网站 外贸竞价推广
  • 互联网营销师证兰州seo优化公司
  • 自己做外贸自己做网站发新闻稿平台
  • 怎么设立网站赚广告费seo产品优化推广
  • 济南高新区网站建设公司企业seo
  • 网站平台怎么做漯河seo推广
  • 深圳有什么做招聘网站的公司吗官网站内推广内容
  • 中国建设委员会网站torrentkitty磁力搜索引擎
  • 莆田外贸专业建站百度我的订单查询
  • 做一些网站犯法么中国网络营销网