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

企业网站首页开发网站比较分析

企业网站首页开发,网站比较分析,通讯数码网站,wordpress链接过期数据结构之线性表#xff08;3#xff09; 上文我们了解了线性表的静动态存储的相关操作#xff0c;此篇我们对线性表中链表的相关操作探讨。 在进行链表的相关操作时#xff0c;我们先来理解单链表是什么#xff1f; 1.链表的概念及结构 链表是一种物理存储结构上非连…数据结构之线性表3 上文我们了解了线性表的静动态存储的相关操作此篇我们对线性表中链表的相关操作探讨。 在进行链表的相关操作时我们先来理解单链表是什么 1.链表的概念及结构 链表是一种物理存储结构上非连续、非顺序的存储结构数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 //单链表的结点定义 struct SeqListNode {datatype data;struct SLNode * next; }; typedef struct SeqListNode SLNode;单链表的基本操作 1.头插 //头插 void SLNpushfront(SLNode** pphead,datatype x) {//1.不存在其他结点if (*pphead NULL){SLNode* newnode (SLNode*)malloc(sizeof(SLNode));newnode-data x;newnode-next NULL;*pphead newnode;}else{//2.存在其他结点SLNode* tmp (SLNode*)malloc(sizeof(SLNode));tmp-data x;tmp-next *pphead;*pphead tmp;} }2.尾插 //尾插 void SLNpushback(SLNode** pphead, datatype x) {//1.不存在其他结点if (*pphead NULL){SLNode* newnode (SLNode*)malloc(sizeof(SLNode));newnode-data x;newnode-next NULL;*pphead newnode;}else{//2.存在其他结点SLNode* tail *pphead;while (tail-next ! NULL){tail tail-next;}SLNode* newnode (SLNode*)malloc(sizeof(SLNode));tail-next newnode;newnode-data x;newnode-next NULL;} }3.头删 //头删 void SLNpopfront(SLNode** pphead) {//1.链表中0个结点无法删除if (*pphead NULL){printf(链表中没有结点无法删除\n);exit(-1);}//2.链表中只有一个结点if ((*pphead)-next NULL){free(*pphead);(*pphead) NULL;}//3.链表中有一个以上结点SLNode* tmp (*pphead)-next;free(*pphead);(*pphead) NULL;*pphead tmp; }4.尾删 //尾删 void SLNpopback(SLNode** pphead) {//1.链表中0个结点if (*pphead NULL){printf(链表中没有结点无法删除\n);exit(-1);}//2.链表中只有一个结点,就类似于只有一个结点的头删if ((*pphead)-next NULL){free(*pphead);(*pphead) NULL;}//3.链表中有一个以上结点SLNode* prev NULL;SLNode* tail (*pphead);while (tail-next ! NULL){prev tail;tail tail-next;}free(tail);tail NULL;prev-next NULL; }5.打印 //打印 void SLNprintf(SLNode* pphead) {while (pphead){printf(%d , pphead-data);pphead pphead-next;} }6.查找 //查找 SLNode* SLNfind(SLNode* phead, datatype x) {SLNode* cur phead;while (cur ! NULL){if (cur-data x){return cur;}cur cur-next;}return NULL; }7.指定位置插入 //指定位置插入 void SLNinsert(SLNode** pphead, SLNode* pos, datatype x) {if (pos *pphead){SLNpushfront(pphead, x);//若pos*pphead就等同于头插}else{SLNode* newnode (SLNode*)malloc(sizeof(SLNode));newnode-data x;newnode-next NULL;SLNode* prev *pphead;while (prev-next ! pos){prev prev-next;}prev-next newnode;newnode-next pos;} }7.指定位置删除 void SLNdeleate(SLNode** pphead, SLNode* pos) {if (pos *pphead){SLNpopfront(pphead);//若pos*pphead就等同于头删}else{SLNode* prev *pphead;while (prev-next ! pos){prev prev-next;}prev-next pos-next;free(pos);} }完整代码如下 #includestdio.h #includestdlib.h typedef int datatype; //单链表结点的定义 struct SeqListNode {datatype data;struct SLNode* next; }; typedef struct SeqListNode SLNode; //头插 void SLNpushfront(SLNode** pphead,datatype x) {//1.不存在其他结点if (*pphead NULL){SLNode* newnode (SLNode*)malloc(sizeof(SLNode));newnode-data x;newnode-next NULL;*pphead newnode;}else{//2.存在其他结点SLNode* tmp (SLNode*)malloc(sizeof(SLNode));tmp-data x;tmp-next *pphead;*pphead tmp;} } //尾插 void SLNpushback(SLNode** pphead, datatype x) {//1.不存在其他结点if (*pphead NULL){SLNode* newnode (SLNode*)malloc(sizeof(SLNode));newnode-data x;newnode-next NULL;*pphead newnode;}else{//2.存在其他结点SLNode* tail *pphead;while (tail-next ! NULL){tail tail-next;}SLNode* newnode (SLNode*)malloc(sizeof(SLNode));tail-next newnode;newnode-data x;newnode-next NULL;} } //头删 void SLNpopfront(SLNode** pphead) {//1.0个结点无法删除if (*pphead NULL){printf(链表中没有结点无法删除\n);exit(-1);}//2.链表中只有一个结点if ((*pphead)-next NULL){free(*pphead);(*pphead) NULL;}//3.链表中有一个以上结点SLNode* tmp (*pphead)-next;free(*pphead);(*pphead) NULL;*pphead tmp; } //尾删 void SLNpopback(SLNode** pphead) {//1.链表中0个结点if (*pphead NULL){printf(链表中没有结点无法删除\n);exit(-1);}//2.链表中只有一个结点,就类似于只有一个结点的头删if ((*pphead)-next NULL){free(*pphead);(*pphead) NULL;}//3.链表中有一个以上结点SLNode* prev NULL;SLNode* tail (*pphead);while (tail-next ! NULL){prev tail;tail tail-next;}free(tail);tail NULL;prev-next NULL; } //打印 void SLNprintf(SLNode* pphead) {while (pphead){printf(%d , pphead-data);pphead pphead-next;} } //指定位置插入 void SLNinsert(SLNode** pphead, SLNode* pos, datatype x) {if (pos *pphead){SLNpushfront(pphead, x);}else{SLNode* newnode (SLNode*)malloc(sizeof(SLNode));newnode-data x;newnode-next NULL;SLNode* prev *pphead;while (prev-next ! pos){prev prev-next;}prev-next newnode;newnode-next pos;} } //指定位置删除 void SLNdeleate(SLNode** pphead, SLNode* pos) {if (pos *pphead){SLNpopfront(pphead);}else{SLNode* prev *pphead;while (prev-next ! pos){prev prev-next;}prev-next pos-next;free(pos);} } //查找 SLNode* SLNfind(SLNode* phead, datatype x) {SLNode* cur phead;while (cur ! NULL){if (cur-data x){return cur;}cur cur-next;}return NULL; } int main() {SLNode* plist NULL;SLNpushfront(plist, 1);SLNpushfront(plist, 2);SLNpushfront(plist, 3);SLNpushback(plist, 4);SLNpushback(plist, 5);SLNpushback(plist, 6);SLNpushback(plist, 7);SLNpopfront(plist);SLNpopback(plist);SLNprintf(plist);return 0; }以上就是单链表中最简单的一种结构的相关操作啦谢谢大家支持。
http://www.zqtcl.cn/news/748027/

相关文章:

  • 成都有哪些网站建设的公司河南网站建设优化推广
  • 小说投稿赚钱的网站网站后台管理系统多少钱
  • 中国建设银行国际互联网网站网站是用什么做的
  • 做建设网站的活的兼职网络推广专员的岗位职责是
  • 韩国 网站设计保定网站开发公司
  • 发外链的网站都要企业注册网站建设的基本概念
  • 网站管理员有哪些权限中文域名网站好不好优化
  • wordpress主题 资源站关闭wordpress自动更新
  • 网站排名怎么上去创建全国文明城市我们应该怎么做
  • 网站 ftp自助建站信息网
  • 做珠宝的网站wordpress获取相关文章
  • 网站开发视频 百度云视频资源的网站怎么做
  • 写出网站建设的基本流程鹤山市城乡住房建设部网站
  • 万网域名注册后如何做网站教学网络传奇游戏
  • 岳阳网站建设方案免费网站模板建设
  • 郑州响应式网站制作如何做公众号微信
  • 专业公司网站建设精准引流推广团队
  • 蔡甸建设局网站怎么用云校建设学校网站
  • 建立网站需要哪些东西软件开发流程包括
  • 网站的pdf目录怎么做的网站编写
  • 南宫企业做网站wordpress图片显示距离
  • 青岛红岛做网站百度怎么打广告
  • 凡科建站怎么建网站网络搭建是什么工作
  • wordpress支持国内视频的编辑器网站优化排名软件网站
  • 建设摩托官方网站南京做网站群的公司
  • 晋城城乡建设局网站设计网站公司选泽y湖南岚鸿询 问
  • 思坎普网站建设湘潭网站推广
  • 北京网站建设公司哪个最好做投标网站条件
  • 网站建设的成本有哪些内容怎么样制作网页
  • 怎么做网站的seo排名知乎茂名网站制作公司