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

网站建设 推广400电话wordpress是博客

网站建设 推广400电话,wordpress是博客,营销软件代理品牌有哪些,深圳中小企业vi设计目录 1.单链表 1.1 实现单链表 1.1.1 文件创建 1.1.2 链表功能了解 1.1.3 链表的结点 1.1.4 链表的函数声明 1.1.5 链表功能的实现 链表是一种链式结构,物理结构不连续,逻辑结构是连续的,在计算机中链表的实际存储是按照一个结点内存放…

目录

1.单链表

1.1 实现单链表

1.1.1 文件创建

1.1.2 链表功能了解

1.1.3 链表的结点

1.1.4 链表的函数声明

1.1.5 链表功能的实现


链表是一种链式结构,物理结构不连续,逻辑结构是连续的,在计算机中链表的实际存储是按照一个结点内存放下一个结点的地址来实现链接的

1.单链表

单链表也称不带头无循环单向链表

链表的概念相信大家都了解,说的再多不如自己实现一个链表来的理解深入

我们现在开始手搓一个单链表出来

1.1 实现单链表

1.1.1 文件创建

首先我们创建一个头文件slist.h,用来包含头文件和函数的声明

再创建一个源文件slist.c,用来函数的实现

最后创建一个main.c来测试我们的单链表功能

这样我们的代码耦合性会更高,以后哪里需要单链表去完成什么功能直接使用当前的文件就可以了

好了!现在我们可以开始愉快的写代码了

1.1.2 链表功能了解

  1. 单链表的申请元素
  2. 单链表的初始化
  3. 单链表的头部插入删除
  4. 单链表的尾部插入删除
  5. 单链表的pos位置之后的插入删除
  6. 单链表的打印元素

好了了解这些功能建议不要立即去抄代码,而是自己带着功能去自己试着实现,这样理解的更深刻

1.1.3 链表的结点

单链表只保存下一个结点的地址,所以结点是很简单的

#pragma once
#include<stdio.h>
#include <stdlib.h>
#include <assert.h>
typedef int SListNodeDataType; //将需要存入链表的元素类型typedef,代码耦合性变低
typedef struct SListNode	//将链表结点类型typedef为Slist
{SListNodeDataType _val;	//链表保存的数据struct SListNode* _next;//链表的下一个结点的地址
}SList;

1.1.4 链表的函数声明

SList* CreateSLNode(SListNodeDataType val);	//创建新结点
void SListPushBack(SList** st, SListNodeDataType val);//尾插
void SListPopBack(SList** st);//尾删
void SListPushFront(SList** st, SListNodeDataType val);//头插
void SListPopFront(SList** st);//头删
void SListInsert(SList** pos, SListNodeDataType val);//pos位置之后的插入
void SListErase(SList** pos);//pos位置之后的删除
void SListPrint(SList* st);//打印链表元素

这些都是存放在slist.h中的

将函数的实现放在slist.c中

1.1.5 链表功能的实现

#include"slist.h"SList* CreateSLNode(SListNodeDataType val)
{SList* newNode = (SList*)malloc(sizeof(SList));assert(newNode);newNode->_next = NULL;newNode->_val = val;return newNode;
}
void SListPushBack(SList** st, SListNodeDataType val)
{if (*st == NULL){*st = CreateSLNode(val);return;}SList* cur = *st;while (cur->_next){cur = cur->_next;}cur->_next = CreateSLNode(val);
}
void SListPopBack(SList** st)
{assert(*st);SList* cur = *st;SList* prev = *st;while (cur->_next){prev = cur;cur = cur->_next;}free(cur);prev->_next = NULL;
}
void SListPushFront(SList** st, SListNodeDataType val)
{SList* newNode = CreateSLNode(val);newNode->_next = *st;*st = newNode;
}
void SListPopFront(SList** st)
{assert(*st);SList* cur = *st;*st = cur->_next;free(cur);
}
void SListInsert(SList** pos, SListNodeDataType val)
{assert(*pos);SList* newNode = CreateSLNode(val);SList* cur = *pos;newNode->_next = cur->_next;cur->_next = newNode;}
void SListErase(SList** pos)
{assert(*pos);SList* cur = *pos;SList* tmp = cur->_next;if (cur->_next){cur->_next = cur->_next->_next;}free(tmp);
}
void SListPrint(SList* st)
{SList* cur = st;while (cur){printf("%d ", cur->_val);cur = cur->_next;}printf("\n");}

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

相关文章:

  • 免费网站可以做cpa?网页翻译在哪
  • c mvc网站做404域名证书如何查询
  • 注册公司在哪个网站seoul是韩国哪个城市
  • 短视频推广引流泰安短视频seo
  • 安徽做网站公司企业服务平台官网入口
  • IP网站登记七牛云 wordpress
  • 如何做专题网站网络建设方案总结
  • 邢台做网站可信赖平台推广是什么
  • 以网络营销为导向的网站建设应注意什么问题wordpress do_action
  • 自己电脑如何做网站服务器网站如何做后台
  • 上海网站制作公司多少钱恢复wordpress修订版本号
  • 苏州网站优化公司购物网站开发用什么软件
  • 网站开发都有什么端深圳市福田建设集团
  • 安徽优化网站贵州建站管理系统
  • c语言做网站吗深圳室内设计工作室排名
  • qq代挂主站网站建设销售外包
  • 高端网站建设 企业网站建站网络广告设计
  • 下载网站 源码里水网站开发
  • 阳泉哪里做网站做网站网站代理怎么找客源
  • 建网站 南京成都seo公司排名
  • 网页设计如何建立网站网站规划的步骤
  • 网站制作 杭州鹰潭手机网站建设
  • 建立公司网站时什么是重要的it软件外包
  • 网站自助建设平台百度长沙最新确诊病例
  • 哪个地区网站建设好wordpress导入主题
  • 网上做环评立项的网站是哪个营销策划方案设计的技巧
  • 2018年网站建设工作总结商丘网站建设推广公司地址
  • 关于做情侣的网站的图片大全沈阳企业网站开发
  • 厦门哪里有教网站建设开福区网站建设论坛
  • 相亲网站做推广的照片是谁陕西交通建设集团西镇分公司网站