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

蘑菇街的网站建设淘宝电脑版网页

蘑菇街的网站建设,淘宝电脑版网页,智慧团建网站pc端,小型教育网站建设问题存在的目录 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/472649.html

相关文章:

  • 东莞网站优化电话专业模板网站制作哪家好
  • 盐城有没有做公司网站wordpress获取文章标签
  • 建材手机网站app开发制作在哪儿
  • 百度推广怎么做的网站吗网站建设需要哪些信息
  • 北京哪个网站建设最好制作商务网站
  • 新建的网站百度搜不到好用的微信公众号编辑器
  • 像素点建网站电脑有网但浏览器打不开网页
  • 深圳企业网站建设服务平台网站建设虚线的代码
  • 扬州开发区建设局网站培训
  • 七里河微信网站建设免费logo设计 u钙
  • 辽源市网站建设做招聘网站的客户想退钱
  • 西安家电商城网站建设wordpress添加友情练级
  • 注册域名的官方网站wordpress网址显示IP
  • 国内做的比较简洁的网站磁力搜索器
  • 网站建设要做什么会计科目怎样做动漫照片下载网站
  • 昆山制作网页游戏优化是什么意思?
  • 网站运营管理员具体做什么互联网保险平台哪家最好
  • 哪个网站做的系统好筹备网站建设
  • 做挂网站html5企业网站建设
  • 如何让百度搜索到自己的网站wordpress博客菜单颜色怎么改
  • 微信公众号h5网站开发西安网站建设l西安搜推宝网络
  • 动漫制作专业就业形势昆明官网seo公司
  • 湘潭网站建设速来磐石网络做两个阿里网站吗
  • 厚街镇做网站建设网站的预算
  • wordpress 获取链接地址惠州seo外包费用
  • 北京 外贸网站1688品牌加盟网
  • 做网站哪家公司比较好wordpress 评论api
  • 郑州墨守网络网站建设网络公司网站设计多少钱
  • 网站案例展示分类建站宝盒
  • 做网站游戏都需要什么阜宁网站建设