苏嵌教育                                                                     暑期实习


学习日志                                            姓名:胡昊          日期:2018.7.21



  • 今日学习任务:                                 学习链表。

  • 今日任务完成情况:                         完成链表的操作函数,实现了链表建立,增加,删除。主要代码:

    /*************************************************************************> File Name: LinkList.c> Author: HuHao> Mail: 1434203734@qq.com > Created Time: 2018年07月20日 星期五 21时10分56秒************************************************************************/#include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>#define OK 1
    #define ERROR 0
    #define TRUE 1
    #define FALSE 0#define MAXSIZE 20 /* 存储空间初始分配量 */typedef int Status;/* Status是函数的类型,其值是函数结果状态代码,如OK等 */
    typedef int ElemType;/* ElemType类型根据实际情况而定,这里假设为int */typedef struct Node
    {ElemType data;struct Node *next;
    }Node;typedef struct Node * LinkList; /* 定义LinkList *//*定义输出函数*/
    Status visit(ElemType c)
    {printf("%d\n",c);return OK;
    }/* 初始化链表 */
    Status InitList(LinkList *L)
    {*L=(LinkList)malloc(sizeof(Node));/* 产生头结点,并使L指向此头结点 */if(NULL == (*L))/* 存储分配失败 */return ERROR;(*L)->next=NULL;/* 指针域为空 */return OK;
    }/* 初始条件:顺序线性表L已存在。操作结果:若L为空表,则返回TRUE,否则返回FALSE */
    Status ListEmpty(LinkList L)
    {if(L->next==NULL)return TRUE;elsereturn FALSE;
    }/* 初始条件:顺序线性表L已存在。操作结果:将L重置为空表 */
    Status ClearList(LinkList *L)
    {LinkList p,q;p=(*L)->next;while(p){q=p->next;free(p);p=q;}(*L)->next=NULL;return OK;
    }/* 初始条件:顺序线性表L已存在。操作结果:返回L中数据元素个数 */
    int ListLength(LinkList L)
    {int i=0;LinkList p=L->next;while(p!=NULL){p=p->next;i++;}return i;
    }/** 初始条件:顺序线性表L已存在,1≤i≤ListLength(L)*操作结果:用e返回L中第i个数据元素的值*/Status GetElem(LinkList L,int i,ElemType *e)
    {int j;LinkList p=L->next;j=1;while(p!=NULL&&j!=i){p=p->next;j++;}if(p==NULL || j>i)return ERROR;*e=p->data;return OK;
    }/* 初始条件:顺序线性表L已存在 * 操作结果:返回L中第1个与e满足关系的数据元素的位序。* 若这样的数据元素不存在,则返回值为0 */
    int LocateElem(LinkList L,ElemType e)
    {int i=0;LinkList p=L->next;while(p!=NULL){i++;if(p->data==e)return i;}return 0;
    }/* 初始条件:顺序线性表L已存在,1≤i≤ListLength(L)+1, * 操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1 */
    Status ListInsert(LinkList *L,int i,ElemType e)
    {int j=1;LinkList p,q;p=*L;while(p!=NULL && j<i){p=p->next;j++;}if(p==NULL || j>i)return ERROR;q=(LinkList)malloc(sizeof(Node));q->data=e;q->next=p->next;p->next=q;return OK;
    }/* 初始条件:顺序线性表L已存在,1≤i≤ListLength(L) * 操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1*/
    Status ListDelete(LinkList *L,int i,ElemType *e)
    {int j=1;LinkList p,q;p=*L;while(p!=NULL && j<i){p=p->next;j++;}if(p==NULL || j>i)return ERROR;q=p->next;p->next=q->next;*e=q->data;free(q);return OK;
    }/* 初始条件:顺序线性表L已存在 * 操作结果:依次对L的每个数据元素输出 */
    Status ListTraverse(LinkList L)
    {LinkList p = L->next;if(p==NULL)return ERROR;while(p!=NULL){visit(p->data);p=p->next;}printf("\n");return OK;
    }/** 随机产生n个元素的值,建立带表头结点的单链线性表L(头插法) */
    void CreateListHead(LinkList *L, int n)
    {LinkList p;int i;srand(time(NULL));*L=(LinkList)malloc(sizeof(Node));(*L)->next=NULL;for(i=0;i<n;i++){p=(LinkList)malloc(sizeof(Node));p->data=rand()%100+1;p->next=(*L)->next;(*L)->next=p;}
    }/*  *  随机产生n个元素的值,建立带表头结点的单链线性表L(尾插法) */
    void CreateListTail(LinkList *L, int n)
    {LinkList p,q;int i;srand(time(NULL));*L=(LinkList)malloc(sizeof(Node));q=*L;for(i=0;i<n;i++){p=(LinkList)malloc(sizeof(Node));p->data=rand()%100+1;q->next=p;q=p;}q->next=NULL;
    }int main()
    {return 0;
    }

  • 今日开发中出现的问题汇总:           对指针的使用,形参和实参的区别。

  • 今日未解决问题:                             无

  • 自我评价:                                        自我感觉良好,基本掌握了新知识。

  • 其他:                                               随着一天的学习落幕,收获满满,期待着明天的学习和明天的收获。

程序人生——苏嵌第六天相关推荐

  1. 程序人生——苏嵌第三天

    苏嵌教育                                                                     暑期实习 学习日志                   ...

  2. 苏嵌//张朋//2018.07.16

    苏嵌                                                                                                   ...

  3. //苏嵌//张朋//2018.07.11

    苏嵌                                                                                                   ...

  4. 哈工大2022秋计算机系统大作业——程序人生

    目录 第1章 概述 1.1 Hello简介 1.2 环境与工具 1.3 中间结果 1.4 本章小结 第2章 预处理 2.1 预处理的概念与作用 2.2在Ubuntu下预处理的命令 2.3 Hello的 ...

  5. 程序员苏享茂:怎样才能遇到对的人?

    一石击起千重浪,苏享茂事件重回公众视线. ☏  (00) 程序员苏享茂,离开这个世界多年了. 世人早已忘记了他. 只有他的哥哥,仍然在吃力的坚持着,坚持着--坚持着要给弟弟一个公道. -------- ...

  6. 【苏嵌实训-嵌入式 linux C 第 1天】

    | 项目名称 [苏嵌实训-嵌入式 linux C 第 1天] 今日进度以及任务 了解未来就业形势.学习Linux系统开发环境,熟悉编译环境和命令. 任务完成情况 通过在微信公众号及百度搜索完成 本日开 ...

  7. 2022春哈工大计算机系统大作业——hello的程序人生

    计算机系统 大作业 题     目 程序人生-Hello's P2P 专       业 计算学部 学   号 班   级 学       生 指 导 教 师 计算机科学与技术学院 2021年5月 摘 ...

  8. 程序人生-Hello’s P2P(哈工大计算机系统大作业)

    计算机系统 大作业 题        目  程序人生-Hello's P2P 专         业   计算学部 学 号   1190201018 班 级   1936603 学        生  ...

  9. 【正一专栏】榆林产妇和程序员苏享茂怎样你们都不该去死

    榆林产妇和程序员苏享茂怎样你们都不该去死 最近两起跳楼身亡事件,引起了全社会极大的关注,可谓是一波未平一波又起,陕西榆林产妇跳楼身亡引起了全社会的舆论关注,连国家卫计委都介入调查之中,最新消息是事发医 ...

  10. 程序人生(三):毕业第二年,涨薪100%

    最近我将用系列文章,回顾十年程序生涯,一方面是对职场生涯的阶段性总结,另一方面希望这些经历,对大家往后职场生涯有所启发. 这是十年程序生涯系列的第三篇,第二篇在这:腾讯一年,离职了-.添加链接描述 & ...

最新文章

  1. ads1115寄存器操作
  2. 这些年,在工作中摸索的我
  3. 在Windows下安装labelImg
  4. poj 3045 Cow Acrobats (贪心!!不是二分,)
  5. java中hashMap的排序
  6. 从生活角度学习应用程序、虚拟目录、应用程序池(解惑篇)
  7. 3W字!带你玩转「消息队列」
  8. 2021年吉林高考成绩怎么查询,2021年吉林高考成绩排名查询系统,吉林高考位次排名查询...
  9. idea报错Cannot resolve jdk.tools:jdk.tools:1.7
  10. python实现将字符串转化为数字(逆序输出)
  11. laravel ajax分页实例,Laravel 的分页功能 - Laravel 5.6 中文文档
  12. C# const, readonly, static readonly
  13. 从编写c语言源程序到运行,c语言 源代码到可执行程序的过程
  14. Android开放root权限
  15. 论坛议程|COSCon'22 大数据(D)
  16. 自动驾驶数据闭环系列之一:理想丰满,现实骨感
  17. Linux下线程池(ThreadPool)
  18. 别人在直播怎么录下来
  19. 测绘资质对企业单位的作用和影响
  20. 【雕爷学编程】Arduino动手做(107)---PCF8574扩展板模块

热门文章

  1. JSP文件过大编译失败 异常is exceeding the 65535 bytes limit错误
  2. YarnAllocator:Container killed by YARN for exceeding memory limits. spark.yarn.executor.memoryOverhe
  3. 游戏的本质【转自网易】
  4. SpringBoot/SpringMVC整合Shiro:实现登录与注册(MD5加盐加密)
  5. mc无可用java_新人求助,MC无法打开,内存java均无问题
  6. 2010年终总结报告
  7. DNS污染的解决方法
  8. 《虎胆龙威5》效果评论
  9. SDUT OJ 2144 数据结构实验之图论九:最小生成树
  10. 股票走势图php源码下载,flex实现股票行情走势图示例代码