程序人生——苏嵌第六天
苏嵌教育 暑期实习
学习日志 姓名:胡昊 日期: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; }
- 今日开发中出现的问题汇总: 对指针的使用,形参和实参的区别。
- 今日未解决问题: 无
- 自我评价: 自我感觉良好,基本掌握了新知识。
- 其他: 随着一天的学习落幕,收获满满,期待着明天的学习和明天的收获。
程序人生——苏嵌第六天相关推荐
- 程序人生——苏嵌第三天
苏嵌教育 暑期实习 学习日志 ...
- 苏嵌//张朋//2018.07.16
苏嵌 ...
- //苏嵌//张朋//2018.07.11
苏嵌 ...
- 哈工大2022秋计算机系统大作业——程序人生
目录 第1章 概述 1.1 Hello简介 1.2 环境与工具 1.3 中间结果 1.4 本章小结 第2章 预处理 2.1 预处理的概念与作用 2.2在Ubuntu下预处理的命令 2.3 Hello的 ...
- 程序员苏享茂:怎样才能遇到对的人?
一石击起千重浪,苏享茂事件重回公众视线. ☏ (00) 程序员苏享茂,离开这个世界多年了. 世人早已忘记了他. 只有他的哥哥,仍然在吃力的坚持着,坚持着--坚持着要给弟弟一个公道. -------- ...
- 【苏嵌实训-嵌入式 linux C 第 1天】
| 项目名称 [苏嵌实训-嵌入式 linux C 第 1天] 今日进度以及任务 了解未来就业形势.学习Linux系统开发环境,熟悉编译环境和命令. 任务完成情况 通过在微信公众号及百度搜索完成 本日开 ...
- 2022春哈工大计算机系统大作业——hello的程序人生
计算机系统 大作业 题 目 程序人生-Hello's P2P 专 业 计算学部 学 号 班 级 学 生 指 导 教 师 计算机科学与技术学院 2021年5月 摘 ...
- 程序人生-Hello’s P2P(哈工大计算机系统大作业)
计算机系统 大作业 题 目 程序人生-Hello's P2P 专 业 计算学部 学 号 1190201018 班 级 1936603 学 生 ...
- 【正一专栏】榆林产妇和程序员苏享茂怎样你们都不该去死
榆林产妇和程序员苏享茂怎样你们都不该去死 最近两起跳楼身亡事件,引起了全社会极大的关注,可谓是一波未平一波又起,陕西榆林产妇跳楼身亡引起了全社会的舆论关注,连国家卫计委都介入调查之中,最新消息是事发医 ...
- 程序人生(三):毕业第二年,涨薪100%
最近我将用系列文章,回顾十年程序生涯,一方面是对职场生涯的阶段性总结,另一方面希望这些经历,对大家往后职场生涯有所启发. 这是十年程序生涯系列的第三篇,第二篇在这:腾讯一年,离职了-.添加链接描述 & ...
最新文章
- ads1115寄存器操作
- 这些年,在工作中摸索的我
- 在Windows下安装labelImg
- poj 3045 Cow Acrobats (贪心!!不是二分,)
- java中hashMap的排序
- 从生活角度学习应用程序、虚拟目录、应用程序池(解惑篇)
- 3W字!带你玩转「消息队列」
- 2021年吉林高考成绩怎么查询,2021年吉林高考成绩排名查询系统,吉林高考位次排名查询...
- idea报错Cannot resolve jdk.tools:jdk.tools:1.7
- python实现将字符串转化为数字(逆序输出)
- laravel ajax分页实例,Laravel 的分页功能 - Laravel 5.6 中文文档
- C# const, readonly, static readonly
- 从编写c语言源程序到运行,c语言 源代码到可执行程序的过程
- Android开放root权限
- 论坛议程|COSCon'22 大数据(D)
- 自动驾驶数据闭环系列之一:理想丰满,现实骨感
- Linux下线程池(ThreadPool)
- 别人在直播怎么录下来
- 测绘资质对企业单位的作用和影响
- 【雕爷学编程】Arduino动手做(107)---PCF8574扩展板模块
热门文章
- JSP文件过大编译失败 异常is exceeding the 65535 bytes limit错误
- YarnAllocator:Container killed by YARN for exceeding memory limits. spark.yarn.executor.memoryOverhe
- 游戏的本质【转自网易】
- SpringBoot/SpringMVC整合Shiro:实现登录与注册(MD5加盐加密)
- mc无可用java_新人求助,MC无法打开,内存java均无问题
- 2010年终总结报告
- DNS污染的解决方法
- 《虎胆龙威5》效果评论
- SDUT OJ 2144 数据结构实验之图论九:最小生成树
- 股票走势图php源码下载,flex实现股票行情走势图示例代码