实践的成果要通过博文的形式发表,为自己的成长做记录,为大家的交流建平台。要重视这样一种形式。

  “算法达人修炼营”实践作品博文标题中要体现数据结构、存储方式、实现基本操作等。例如,针对《给数据结构初学者:跨过算法和程序之间的鸿沟》的内容,标题应该是“线性表-顺序存储-初始化及遍历操作的实现”。了解算法达人训练营,见《C04-算法达人修炼营学习安排及方法指导》。

  博文中要加入适当的注释,对齐、缩格排版等要做到。

  模板一

  将所有代码放在一个文件中,是编制小程序时的常用办法。

  标题是“线性表-顺序存储-初始化及遍历操作的实现”的博文正文的内容可以是:

/*
* 烟台大学未来工程师协会/CSDN俱乐部 算法达人修炼营 实践报告
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 作    者:
* 完成日期:         年       月        日
* 版 本 号:          * 任务描述:针对线性表的采用顺序存储结构,实现两个基本操作
*   1. 构造空的线性表(InitList)
*   2. 遍历线性表(ListTraverse)
* 主要函数:
*   1. Status InitList(SqList &L) // 算法2.3
*   2. Status ListTraverse(SqList L, void(*visit)(ElemType *))
*/#include<stdio.h> //printf()等
#include<malloc.h> // malloc()等
#include<process.h> //exit()
#define OK 1
#define OVERFLOW -2
typedef int Status;    //Status是函数的类型,其值是函数结果状态代码,如OK等  typedef int ElemType;  //ElemType是线性表中数据元素的类型,此处用int
#define LIST_INIT_SIZE 10 // 线性表存储空间的初始分配量,为方便测试,改为10  typedef struct
{  ElemType *elem; // 存储空间基址  int length; // 当前长度  int listsize; // 当前分配的存储容量(以sizeof(ElemType)为单位)
}SqList; // 算法2.3
// 操作结果:构造一个空的顺序线性表
Status InitList(SqList &L)
{    L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));  if(!L.elem)  exit(OVERFLOW); // 存储分配失败  L.length=0; // 空表长度为0  L.listsize=LIST_INIT_SIZE; // 初始存储容量  return OK;
} void showData(ElemType *pe)
{printf("%d ", &pe);
}// 初始条件:顺序线性表L已存在
// 操作结果:依次对L的每个数据元素调用函数visit()。
//     visit()是一个指向函数的指针,适合针对不同元素类型选遍历中访问的基本操作
Status ListTraverse(SqList L, void(*visit)(ElemType *))
{ElemType *p;  int i;  p=L.elem;  printf("线性表当前容量为: %d,", L.listsize);  if (L.length>0)  {  printf("线性表中有 %d 个元素,分别是:",L.length);  for(i=1;i<=L.length;i++)  visit(p++);  }  else  printf("目前还是空线性表。");  printf("\n");  return OK;
}  int main()
{  SqList La;  Status i;  i=InitList(La);  ListTraverse(La,showData);  return 0;
}   

总结:

  掌握了用顺序表结构实现线性表中的初始化、遍历两种操作,更重要的是初步学会了将教材中描述的算法通过C语言写成程序的一般方法。(就知识点部结一二)

  原来算法学习可以这样进行。炼成算法达人,在路上,加油!(写点有助于提升成就感,让自己增强动力的话。)

  模板二

  当问题比较复杂时(代码行数也会增多),常常将代码分在多个文件中,即多文件组织,这种形式更普遍。

  一般做法是,常量、类型、函数的声明在一个头文件中,函数的实现放在另一个文件中。头文件中可以一次性地列出所有要实现的函数。

  标题是“线性表-顺序存储-初始化及遍历操作的实现”的博文正文的内容也可以是:

sqlist.cpp

/*
* 烟台大学未来工程师协会/CSDN俱乐部 算法达人修炼营 实践报告
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 作    者:
* 完成日期:         年       月        日
* 版 本 号:          * 任务描述:针对线性表的采用顺序存储结构,实现两个基本操作
*   1. 构造空的线性表(InitList)
*   2. 遍历线性表(ListTraverse)
* 主要函数:
*   1. Status InitList(SqList &L) // 算法2.3
*   2. Status ListTraverse(SqList L, void(*visit)(ElemType *))
*/
#include"sqlist.h"   //自定义的头文件(见后),将作为这一组实践的公共头文件
#include<stdio.h> //printf()等
#include<malloc.h> // malloc()等
#include<process.h> //exit()  // 算法2.3
// 操作结果:构造一个空的顺序线性表
Status InitList(SqList &L)
{    L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));  if(!L.elem)  exit(OVERFLOW); // 存储分配失败  L.length=0; // 空表长度为0  L.listsize=LIST_INIT_SIZE; // 初始存储容量  return OK;
} void showData(ElemType *pe)
{printf("%d ", &pe);
}// 初始条件:顺序线性表L已存在
// 操作结果:依次对L的每个数据元素调用函数visit()。
//     visit()是一个指向函数的指针,适合针对不同元素类型选遍历中访问的基本操作
Status ListTraverse(SqList L, void(*visit)(ElemType *))
{ElemType *p;  int i;  p=L.elem;  printf("线性表当前容量为: %d,", L.listsize);  if (L.length>0)  {  printf("线性表中有 %d 个元素,分别是:",L.length);  for(i=1;i<=L.length;i++)  visit(p++);  }  else  printf("目前还是空线性表。");  printf("\n");  return OK;
}  int main()
{  SqList La;  Status i;  i=InitList(La);  ListTraverse(La,showData);  return 0;
}   

sqlist.h

#ifndef SQLIST_H
#define SQLIST_H//定义必要的常量
#define LIST_INIT_SIZE 10
#define LISTINCREMENT 2// 函数结果状态代码
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2 
//定义数据类型及存储结构
typedef int ElemType;
typedef int Status;
typedef struct
{int *elem;int length;int listsize;
}SqList;
//所有的基本操作
Status InitList(SqList *L);
Status DestroyList(SqList *L);
Status ClearList(SqList *L);
Status ListEmpty(SqList L);
Status ListLength(SqList L);
Status GetElem(SqList L, int i, ElemType *e);
int LocateElem(SqList L, ElemType e, Status(*compare)(ElemType, ElemType));
Status PriorElem(SqList L, ElemType cur_e, ElemType *pri_e);
Status NextElem(SqList L, ElemType cur_e, ElemType *next_e);
Status ListInsert(SqList *L, int i, ElemType e);
Status ListDelete(SqList *L, int i, ElemType *e);
Status ListTraverse(SqList L, void(*visit)(ElemType *));#endif

总结:

  掌握了用顺序表结构实现线性表中的初始化、遍历两种操作,更重要的是初步学会了将教材中描述的算法通过C语言写成程序的一般方法。(就知识点部结一二)

  原来算法学习可以这样进行。炼成算法达人,在路上,加油!(写点有助于提升成就感,让自己增强动力的话。)

  模板三

  在模板二的基础上,将测试的入口——main()函数放在独立的一个文件中,sqlist.h和sqlist.cpp就是你最好的成果积累了。

  结语

  理论学习、实践提高,交叉进行。

  学贵有法,学法不一,人各有法。

  祝同学们能在持续的学习实践中,不断获得新的体会和提高。

“算法达人修炼营”实践作品展示模板相关推荐

  1. 200套工作室设计行业响应式Html5模板HTML5+CSS3设计网站模板简洁设计师作品展示响应式模板整洁扁平宽屏CSS3网站模板html5网页静态模板Bootstrap扁平化网站源码css3手机se

    200套工作室设计行业响应式Html5模板HTML5+CSS3设计网站模板简洁设计师作品展示响应式模板整洁扁平宽屏CSS3网站模板html5网页静态模板Bootstrap扁平化网站源码css3手机se ...

  2. 游戏原画设计HTML5模板是一款适合网页游戏原画设计作品展示的HTML5网站模板。

    游戏原画设计HTML5模板是一款适合网页游戏原画设计作品展示的HTML5网站模板.不仅仅是首页,二级页面,三级页面,登陆,购物车等,页面齐全 功能齐全  js+css+html (img,字体均有), ...

  3. 2019腾讯广告算法大赛完美收官,算法达人鹅厂“出道”

    7月8日,2019腾讯广告算法大赛"终极之战"在深圳腾讯滨海大厦顺利举行.在前两届成功经验的基础上,今年大赛在赛题专业性和赛事体验上都有了更大的提升,进而吸引了更多海内外优秀选手参 ...

  4. 笔记 | 百度飞浆AI达人创造营:深度学习模型训练和关键参数调优详解

    笔记 | 百度飞浆AI达人创造营:深度学习模型训练和关键参数调优详解 针对特定场景任务从模型选择.模型训练.超参优化.效果展示这四个方面进行模型开发. 一.模型选择 从任务类型出发,选择最合适的模型. ...

  5. 抓住人工智能红利,百度AI达人养成营带你速成深度学习

    未来几年,什么行业是最值得期待的"风口"?又是学什么专业才可以薪资爆表? 国际权威调研机构IDC发布的一份报告显示,2024年中国人工智能市场规模将达到127.5亿美金.随之而来的 ...

  6. 【组队学习】【34期】百度飞桨AI达人创造营

    百度飞桨AI达人创造营 航路开辟者:百度飞桨 领航员:六一 航海士:阿水.颜鑫.宋泽山.刘洋.张文恺 基本信息 内容属性:合作课程 练习平台:https://aistudio.baidu.com/ai ...

  7. 大学生java项目创意申请表_基于java ee的大学生作品展示系统.pdf

    基于java ee的大学生作品展示系统.pdf 还剩 4页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 第34卷第3期 2015年6月 南昌工程学院学 ...

  8. 360算法技术解密与实践-技术干货满满哒

    女主宣言 在这个信息化爆炸的数字时代,越来越多的选择.越来越多的信息,如何将这些信息利用最大化,推荐给合适的用户或客户,赢得目标群体的喜好,提升用户体验,成为产品实现用户增长.营收提升的一个重要引擎. ...

  9. 【AI达人创造营三期】在地平线X3上部署车牌识别系统

    [AI达人创造营三期]在地平线X3上部署车牌识别系统 一. 项目介绍 本项目属于AI达人创造营三期项目,主要探索如何将PaddleOCR训练的车牌识别模型部署在地平线X3的板子上,并实现实时推理. 二 ...

最新文章

  1. Node.js 代码阅读笔记系列(0)Timer 的实现
  2. Git的commit之后的撤销revert
  3. ARMS企业级场景被集成场景介绍
  4. Linux信号的使用
  5. 宝塔配置mysql host_阿里云安装宝塔以及mysql配置
  6. JS对象与jQuery对象
  7. 全国首个人工智能专业,怎么学?
  8. 解决VMware在Windows 7上无法上网的问题
  9. C:\Windows\Installer越来越大?让我们一起来删除msp这个毒瘤
  10. html5 xml文本编辑,简介XML文档的阅读与编辑
  11. QQ 的登录封面是怎么设计的
  12. SQL:从入门到“精通”
  13. 实对称矩阵的特征值求法_梳理:矩阵对角化
  14. Windows Server2003服务器密码忘记情况下,密码破解方法汇总
  15. Docker在蚂蚁金融云平台中的探索与实践
  16. 各有风采:影响全世界的100位帝王排行榜
  17. 微信 心理测试 软件,敢不敢做一份微信版心理测试?
  18. ASEMI代理AD8603AUJZ-REEL7原装ADI车规级AD8603AUJZ-REEL7
  19. html格式桌面,HTML桌面壁纸
  20. Invalid drive错误的解决方案

热门文章

  1. 数据科学的统计学知识笔记
  2. STM32 时钟设置
  3. [转] 美国国家学术出版社所有PDF图书开放免费下载
  4. 线性代数学习笔记——第五十讲——最大无关组的性质和等价叙述
  5. Python实现全盘查找目标文件
  6. IOS证件识别开发包
  7. 张一鸣:大学四年收获及工作感悟
  8. 阶段一:计数器的仿真实验
  9. 工业级4G路由器模组主板 全网通WiFi插SIM卡就上网 PLC远程控制无线通讯模块
  10. 计算机图形学孔令德VS2022新建MFC项目基本操作-绘制金刚石图案