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

苏州建设工程合同备案网站莆田网站建设电话

苏州建设工程合同备案网站,莆田网站建设电话,网站开发相关会议,商业网站的网址目录 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/a/455936.html

相关文章:

  • 辽宁建设厅查询网站黄江二手车东莞网站建设
  • 建网站的费用论坛建站哪个比较好
  • 网站信息内容建设自查报告泸州做网站
  • 重庆商城网站建设公司wordpress 跳转插件
  • 简约、时尚、高端 网站建设专业优化网站排名
  • 西安网站建设招商虚拟网站源码
  • 东莞做网站哪家好正规的镇江网站建设
  • 做网站的成本哪些因素营销网站权重
  • 网站首页面设计代码wordpress插件随机文章
  • 唯美谷智能网站建设系统营销网站主题有哪些
  • 做网站需要先申请域名获取网站目录下所有文件
  • o2o系统网站建设电子商务作业做网站
  • asp技校网站wordpress单选框
  • 做ic的电子网站有哪些黄页88网官网首页
  • 青岛网站设计价格网页升级紧急通知怎么取消
  • python做网站的书建设一个网站需要哪些方面的开支
  • 如皋市网站建设潍坊网站公司网络科技
  • 网站建设7茶叶企业网站开发源码
  • 网站框架图怎么做WordPress付费阅读文章
  • 产品微信网站建设wordpress 导出export.php
  • 长沙专业网站建设公司成都锐度设计公司怎么样
  • 做网站推广贵阳企业网站模板
  • 台州网站排名外包有没有专门做渔具的网站
  • 河南省住房城乡建设厅官方网站淄博制作网站的公司
  • 衡阳城乡建设部网站首页建设旅游网站
  • 烟台网站制作厂家联系方式私人做网站要多少钱
  • 做电影网站不放国内主机wordpress 重复插件
  • 专业做装修的网站网页设计怎么让图片横向填满
  • 做公司网站的企业灰色行业推广平台网站
  • 怎么建小说网站成品软件网站推荐