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

企业绿色发展助力/seo交流qq群

企业绿色发展助力,seo交流qq群,政府信息公开和网站建设工作,做哪些网站好算法的定义 数据结构研究的是数据的存储和数据的操作的一门学问。 数据的存储分为两个部分: 1. 个体的存储 2. 个体关系的存储 从某个角度而言,数据的存储最核心的就是个体关系的存储 个体的存储可以忽略不计 狭义的算法是与数据的存数方式密切相关 …

算法的定义

数据结构研究的是数据的存储和数据的操作的一门学问。

数据的存储分为两个部分:

        1. 个体的存储

        2. 个体关系的存储

        从某个角度而言,数据的存储最核心的就是个体关系的存储

        个体的存储可以忽略不计

狭义的算法是与数据的存数方式密切相关

广义的算法是与数据的存储方式无关

泛型:利用某种技术达到的效果就是:不同的存数方式,执行的操作是一样的。

           同一种逻辑结构,无论该逻辑结构物理存储是什么,我们都可以对它执行相同的操作。

数组

线性结构:可以把所有节点用一根直线串起来,包括数组和链表。

数据结构中的数组并不是我们印象中的编程语言中包含的具体数据结构。

数组,在内存中以一组连续的数据集合的形式存储相同数据类型的数据。数组内的数据可以随机访问。

数组的优缺点

优点:存取速度很快。

缺点:事先必须知道数组的长度;

           插入删除元素很慢;

           空间通常是有限制的;

           需要大块连续的内存块。

我们对数组进行二次封装,在内存上申请10个int长度进行数据的操作,并封装初始化、添加、插入、显示、删除、排序和反序接口。

#include  <stdio.h>
#include  <stdlib.h>
#include <stdbool.h>typedef unsigned int BOOL;typedef struct ArrayList
{int * pArrayBaseAddr;int length;int currentLeng;
}ARRAY,*PARRAY;void init_arr(PARRAY pArray, int arrlength);
BOOL is_fullarr(PARRAY pArray);
BOOL is_emptyarr(PARRAY pArray);
BOOL append_arr(PARRAY pArray, int addNumber);
BOOL insert_arr(PARRAY pArray, int addNumber, int port); //port位置标号从1开始
void show_arr(PARRAY pArray);
BOOL delete_arr(PARRAY pArray, int port, int *pval);
BOOL sort_arr(PARRAY pArray, int mode);
void inversion_arr(PARRAY pArray);int main()
{PARRAY parraylist;int length = 10;int val = 0;init_arr(parraylist, length);append_arr(parraylist, 19);append_arr(parraylist, 2);append_arr(parraylist, 90);append_arr(parraylist, 76);append_arr(parraylist, 34);append_arr(parraylist, 82);append_arr(parraylist, 100);show_arr(parraylist);printf("\n");
//    insert_arr(parraylist, 8, 8);
/*   if(delete_arr(parraylist, 7, &val)){printf("delete succeed!!\n");printf("the delete number is %d\n", val);}*/sort_arr(parraylist, 1);
//    inversion_arr(parraylist);show_arr(parraylist);return 0;
}void init_arr(PARRAY pArray, int arrlength)
{pArray->pArrayBaseAddr = (int *)malloc(sizeof(int)* arrlength);if(pArray->pArrayBaseAddr != NULL){printf("ArrayList init is OK!\n");pArray->length = arrlength;pArray->currentLeng = 0;}else{printf("ArrayList init is Error!\n");}
}BOOL is_fullarr(PARRAY pArray)
{if (pArray ->currentLeng == pArray ->length){return true;}else{return false;}
}BOOL is_emptyarr(PARRAY pArray)
{if (pArray ->currentLeng == 0){return true;}else{return false;}
}BOOL append_arr(PARRAY pArray, int addNumber)
{if (   is_fullarr( pArray )  )  //不需要==true{printf ("Array is Full!!\n");return false;}else{(pArray->pArrayBaseAddr)[pArray->currentLeng] = addNumber;pArray->currentLeng ++ ;return true;}
}BOOL  insert_arr(PARRAY pArray, int addNumber, int port)
{if (   is_fullarr( pArray )  ){printf ("Array is Full!!\n");return false;}else if(   (port < 0)  ||  (port > (pArray->currentLeng +1)) ){printf("the port is error!\n");return false;}else{for(int i = pArray->currentLeng; i >= port; i-- ){(pArray->pArrayBaseAddr)[ i ]  = (pArray->pArrayBaseAddr)[ i-1 ];}(pArray->pArrayBaseAddr)[port-1] = addNumber;pArray->currentLeng ++ ;return  true;}
}void show_arr(PARRAY pArray)
{if ( is_emptyarr( pArray ) ){printf(" Array is Empty!!\n ");}else{for(int i = 0; i < (pArray->currentLeng); i++){printf("num %d is %d\n", i+1, (pArray->pArrayBaseAddr)[i]);}}
}BOOL delete_arr(PARRAY pArray, int port,  int *pval)
{if (is_emptyarr(pArray)){printf(" Array is Empty!!\n ");return false;}else if(   (port < 0)  ||  (port > (pArray->currentLeng)) ){printf("the port is error!\n");return false;}/*如果port与currentLeng相等就不需要移动,直接将currentLeng减1*/else{*pval = (pArray->pArrayBaseAddr)[port -1];for (int i =port; i < pArray->currentLeng; i++){(pArray->pArrayBaseAddr)[i-1] = (pArray->pArrayBaseAddr)[i];}pArray->currentLeng -- ;return true;}
}BOOL sort_arr(PARRAY pArray, int mode)
{int swap = 0;if (is_emptyarr(pArray)){printf("Array is empty!!\n");return false;}else if (mode == 0){for(int i = 0; i < (pArray->currentLeng-1); i ++){for(int j = i + 1; j < (pArray->currentLeng); j++){if( (pArray->pArrayBaseAddr)[i] > (pArray->pArrayBaseAddr)[j] ){swap = (pArray->pArrayBaseAddr)[j];(pArray->pArrayBaseAddr)[j] = (pArray->pArrayBaseAddr)[i];(pArray->pArrayBaseAddr)[i] = swap;}}}return true;}else if (mode == 1){for(int i = 0; i < (pArray->currentLeng-1); i ++){for(int j = i + 1; j < (pArray->currentLeng); j++){if( (pArray->pArrayBaseAddr)[i] < (pArray->pArrayBaseAddr)[j] ){swap = (pArray->pArrayBaseAddr)[j];(pArray->pArrayBaseAddr)[j] = (pArray->pArrayBaseAddr)[i];(pArray->pArrayBaseAddr)[i] = swap;}}}return true;}
}void inversion_arr(PARRAY pArray)
{int i = 0;int j = pArray->currentLeng -1;int swap = 0;while(i<j){swap = (pArray->pArrayBaseAddr)[i];(pArray->pArrayBaseAddr)[i] = (pArray->pArrayBaseAddr)[j];(pArray->pArrayBaseAddr)[j] = swap;i ++;j --;}
}

http://www.lbrq.cn/news/8515.html

相关文章:

  • 网站内部优化怎么做/百度信息流广告
  • 佛山网站建设服务公司/品牌网络营销策划方案
  • 重庆商城网站建设/重庆森林讲的什么内容
  • 网站注册都需要什么/百度竞价排名广告定价
  • 图片制作视频的软件/seo优化师就业前景
  • 做网站一般要了解哪些/pr的选择应该优先选择的链接为
  • 南宁app开发/优化推广什么意思
  • 网站建站好处/合肥网络优化公司有几家
  • 临沂专业做网站/湖南seo优化哪家好
  • 永久免费仓库出入库管理软件/重庆seo技术分享
  • 荆门哪里做网站/百度如何精准搜索
  • 响应式网站建设制作需要注意什么/怎么把平台推广出去
  • 动态网站开发属于哪种模式/温州seo推广外包
  • 网站页面多少/如何写市场调研报告
  • 天津网站建设 seo/网站推广的平台
  • 专业网站优化案例/苏州关键词seo排名
  • 傻瓜式在线做网站/百度网址安全中心怎么关闭
  • 国外 设计公司手机网站/巨量引擎
  • p2p金融网站开发/安徽网络推广
  • wordpress卡通主题/信阳seo
  • 网站建设就业/百度怎么搜索网址打开网页
  • 用wordpress做网站/近期国内热点新闻事件
  • 武汉大型网站制作/如何制作自己的网站?
  • 网站建设 seo结构/百度电脑版官网
  • 做汽配的都上什么网站/北京seo推广外包
  • asp网站有哪些/现在最好的免费的建站平台
  • 网站设计做多宽/上海牛巨微seo
  • 做卡通的素材网站/搜客通
  • 做海淘网站赚钱吗/色盲测试卡
  • 电子商务网站建设步骤/竞价网络推广托管
  • 可以一键生成PPT的AI PPT工具(最新整理)
  • JVM垃圾回收(GC)深度解析:原理、调优与问题排查
  • GaussDB 八种常规锁介绍
  • 实践笔记-小端模式下的寄存器数据输入技巧;图形化界面配置注意事项。
  • 继承——Java中的“家族传承”
  • Vue 3中watch的返回值:解锁监听的隐藏技巧