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

石家庄 外贸网站建设网页设计论文总结怎么写

石家庄 外贸网站建设,网页设计论文总结怎么写,番禺网站排名推广优化排名,漯河市住房建设局网站目录一、什么是单链表#xff1f;二、单链表的增删查改2.1 结构体变量的声明2.2 申请新结点2.2 链表的头插2.3 链表的尾插2.4 链表的头删2.5 链表的尾删2.6 链表的查找2.7 链表的任意位置后面插入2.8 链表的任意位置后面删除2.9 链表的销毁2.10 链表的打印三、代码汇总3.1 SLi… 目录一、什么是单链表二、单链表的增删查改2.1 结构体变量的声明2.2 申请新结点2.2 链表的头插2.3 链表的尾插2.4 链表的头删2.5 链表的尾删2.6 链表的查找2.7 链表的任意位置后面插入2.8 链表的任意位置后面删除2.9 链表的销毁2.10 链表的打印三、代码汇总3.1 SLish.h3.2 SLish.c3.3 test.c一、什么是单链表 单链表是一种链式存取的数据结构链表中的数据是以结点来表示的每个结点的构成元素(数据元素的映象) 指针(指示后继元素存储位置)元素就是存储数据的存储单元指针就是连接每个结点的地址数据。以“结点的序列”表示的线性表称作线性链表单链表单链表是链式存取的结构。简单来说单链表就是一个一个的节点链接起来的链式结构每个节点里面存储着一个数据和与它链接的下一个节点的指针地址。注意每一个节点都是同一种结构体类型 二、单链表的增删查改 2.1 结构体变量的声明 typedef int SLTDataType; typedef struct SLTNode {SLTDataType data;struct SLTNode* next;}SLTNode;2.2 申请新结点 SLTNode* BuySListNode(SLTDataType x) {SLTNode* newNode (SLTNode*)malloc(sizeof(SLTNode));if (newNode NULL){perror(malloc fail);return NULL;}else{newNode-data x;newNode-next NULL;return newNode;} } 2.2 链表的头插 void SListPushFront(SLTNode** pphead, SLTDataType x) {assert(pphead);SLTNode* newNode BuySListNode(x);newNode-next *pphead;*pphead newNode; }2.3 链表的尾插 void SListPushBack(SLTNode** pphead, SLTDataType x) {assert(pphead);SLTNode* newNode BuySListNode(x);if (*pphead NULL){*pphead newNode;}else{SLTNode* tail *pphead;while (tail-next){tail tail-next;}tail-next newNode;}}2.4 链表的头删 void SListPopFront(SLTNode** pphead) {assert(pphead *pphead);SLTNode* del *pphead;*pphead (*pphead)-next;free(del);del NULL;}2.5 链表的尾删 void SListPopBack(SLTNode** pphead) {assert(pphead);assert(*pphead);if ((*pphead)-next NULL){free(*pphead);*pphead NULL;}else{SLTNode* tailPrev NULL;SLTNode* tail *pphead;while (tail-next){tailPrev tail;tail tail-next;}tailPrev-next NULL;free(tail);tail NULL;}}2.6 链表的查找 SLTNode* SListFind(SLTNode* pphead, SLTDataType x) {SLTNode* cur pphead;while (cur){if (cur-data x){return cur;}else{cur cur-next;}}printf(找不到%d\n,x);return NULL;}2.7 链表的任意位置后面插入 void SListInsertAfter(SLTNode* pos, SLTDataType x) {assert(pos);SLTNode* newNode BuySListNode(x);SLTNode* posNext pos-next;pos-next newNode;newNode-next posNext;}2.8 链表的任意位置后面删除 void SListEraseAfter(SLTNode* pos) {assert(pos pos-next);SLTNode* posNext pos-next;pos-next posNext-next;free(posNext);posNext NULL;}2.9 链表的销毁 //建议传二级指针因为销毁的话需要把这个指向链表的指针置空 //传一级指针无法把指向链表的指针置空 void SListDestroy(SLTNode** pphead) {SLTNode* cur *pphead;while (cur){SLTNode* del cur;cur cur-next;free(del);del NULL;}*pphead NULL; } 2.10 链表的打印 void SListPrint(SLTNode* phead) {SLTNode* cur phead;while (cur){printf(%d-, cur-data);cur cur-next;}printf(NULL\n);} 三、代码汇总 3.1 SLish.h #pragma once//SList.h#include stdio.h #include assert.h #include stdlib.htypedef int SLTDataType; typedef struct SLTNode {SLTDataType data;struct SLTNode* next;}SLTNode;// 动态申请一个节点 extern SLTNode* BuySListNode(SLTDataType x); // 单链表打印 extern void SListPrint(SLTNode* phead); // 单链表尾插 extern void SListPushBack(SLTNode** pphead, SLTDataType x); // 单链表的头插 extern void SListPushFront(SLTNode** pphead, SLTDataType x); // 单链表的尾删 extern void SListPopBack(SLTNode** pphead); // 单链表头删 extern void SListPopFront(SLTNode** pphead); // 单链表查找 extern SLTNode* SListFind(SLTNode* pphead, SLTDataType x); // 单链表在pos位置之后插入x // 分析思考为什么不在pos位置之前插入 extern void SListInsertAfter(SLTNode* pos, SLTDataType x); // 单链表删除pos位置之后的值 // 分析思考为什么不删除pos位置 extern void SListEraseAfter(SLTNode* pos); // 单链表的销毁 extern void SListDestroy(SLTNode** pphead);3.2 SLish.c #define _CRT_SECURE_NO_WARNINGS 1 //Slist.c#include SList.hSLTNode* BuySListNode(SLTDataType x) {SLTNode* newNode (SLTNode*)malloc(sizeof(SLTNode));if (newNode NULL){perror(malloc fail);return NULL;}else{newNode-data x;newNode-next NULL;return newNode;} }void SListPrint(SLTNode* phead) {SLTNode* cur phead;while (cur){printf(%d-, cur-data);cur cur-next;}printf(NULL\n);}void SListPushBack(SLTNode** pphead, SLTDataType x) {assert(pphead);SLTNode* newNode BuySListNode(x);if (*pphead NULL){*pphead newNode;}else{SLTNode* tail *pphead;while (tail-next){tail tail-next;}tail-next newNode;}}void SListPushFront(SLTNode** pphead, SLTDataType x) {assert(pphead);SLTNode* newNode BuySListNode(x);newNode-next *pphead;*pphead newNode; }void SListPopBack(SLTNode** pphead) {assert(pphead);assert(*pphead);if ((*pphead)-next NULL){free(*pphead);*pphead NULL;}else{SLTNode* tailPrev NULL;SLTNode* tail *pphead;while (tail-next){tailPrev tail;tail tail-next;}tailPrev-next NULL;free(tail);tail NULL;}}void SListPopFront(SLTNode** pphead) {assert(pphead *pphead);SLTNode* del *pphead;*pphead (*pphead)-next;free(del);del NULL;}SLTNode* SListFind(SLTNode* pphead, SLTDataType x) {SLTNode* cur pphead;while (cur){if (cur-data x){return cur;}else{cur cur-next;}}printf(找不到%d\n,x);return NULL;}void SListInsertAfter(SLTNode* pos, SLTDataType x) {assert(pos);SLTNode* newNode BuySListNode(x);SLTNode* posNext pos-next;pos-next newNode;newNode-next posNext;}void SListEraseAfter(SLTNode* pos) {assert(pos pos-next);SLTNode* posNext pos-next;pos-next posNext-next;free(posNext);posNext NULL;}void SListDestroy(SLTNode** pphead) {SLTNode* cur *pphead;while (cur){SLTNode* del cur;cur cur-next;free(del);del NULL;}*pphead NULL; } 3.3 test.c #define _CRT_SECURE_NO_WARNINGS 1 //test.c#include SList.hvoid test_SListPushBack(void) {SLTNode* plist NULL;SListPushBack(plist, 1);SListPushBack(plist, 2);SListPushBack(plist, 3);SListPushBack(plist, 4);SListPushBack(plist, 5);SListPrint(plist);SLTNode* ret SListFind(plist, 1);if (ret ! NULL){printf(找到了地址为%p\n, ret);SListInsertAfter(ret, 6);SListPrint(plist);}ret SListFind(plist, 1);if (ret ! NULL){printf(找到了地址为%p\n, ret);SListInsertAfter(ret, 7);SListPrint(plist);}ret SListFind(plist, 1);if (ret ! NULL){printf(找到了地址为%p\n, ret);SListInsertAfter(ret, 8);SListPrint(plist);}ret SListFind(plist, 1);if (ret ! NULL){printf(找到了地址为%p\n, ret);SListInsertAfter(ret, 9);SListPrint(plist);}ret SListFind(plist, 1);if (ret ! NULL){printf(找到了地址为%p\n, ret);SListInsertAfter(ret, 10);SListPrint(plist);}/*SLTNode* ret SListFind(plist, 1);if (ret ! NULL){printf(找到了地址为%p\n, ret);SListEraseAfter(ret);SListPrint(plist);}ret SListFind(plist, 1);if (ret ! NULL){printf(找到了地址为%p\n, ret);SListEraseAfter(ret);SListPrint(plist);}ret SListFind(plist, 1);if (ret ! NULL){printf(找到了地址为%p\n, ret);SListEraseAfter(ret);SListPrint(plist);}ret SListFind(plist, 1);if (ret ! NULL){printf(找到了地址为%p\n, ret);SListEraseAfter(ret);SListPrint(plist);}*//*ret SListFind(plist, 1);if (ret ! NULL){printf(找到了地址为%p\n, ret);SListEraseAfter(ret);SListPrint(plist);}*///SListInsertAfter(ret, 8);/*SListPrint(plist);SListPopFront(plist);SListPrint(plist);SListPopFront(plist);SListPrint(plist); SListPopFront(plist);SListPrint(plist); SListPopFront(plist);SListPrint(plist); SListPopFront(plist);SListPrint(plist);*/}void test_SListPushFront(void) {SLTNode* plist NULL;SListPushFront(plist, 1);SListPushFront(plist, 2);SListPushFront(plist, 3);SListPushFront(plist, 4);SListPushFront(plist, 5);SListPrint(plist);SListPopFront(plist);SListPrint(plist);SListPopFront(plist);SListPrint(plist);SListPopFront(plist);SListPrint(plist);SListPopFront(plist);SListPrint(plist);SListPopFront(plist);SListPrint(plist);/*SListPopFront(plist);SListPrint(plist);*///SListDestroy(plist);//SListPrint(plist);/*SListPopBack(plist);SListPrint(plist);SListPopBack(plist);SListPrint(plist);SListPopBack(plist);SListPrint(plist);SListPopBack(plist);SListPrint(plist);SListPopBack(plist);SListPrint(plist);*/}int main() {//test_SListPushBack();test_SListPushFront();return 0; }以上就是有关单链表增删查改的全部内容了你学会了吗如果对你有帮助点亮一下小心心点点关注呗后期会持续更新计算机相关知识哦
http://www.hkea.cn/news/14420945/

相关文章:

  • 邹城网站建设多少钱docker wordpress v
  • 红酒购物网站源码wordpress模拟接口
  • 第三方网站开发优缺点wordpress跳转到登录页面
  • 郑州做网站优化运营商表白二维码生成器
  • 广州网站备案方案第三方关键词优化排名
  • 排名好的大连网站建设个人能建电商网站吗
  • 手机端网站开发语言佛山高明
  • 印刷下单网站开发网站怎么更改后台登陆密码
  • 上海网站建设免费推荐阿里云服务器怎么使用
  • wordpress主题知更鸟美化seo外链工具软件
  • 昆明网站建设在河科技上海大学生兼职做网站
  • 网站系统建设合作合同范本北京网站制作很好 乐云践新
  • 云阳有没有做网站的wordpress 2018
  • asp.net mvc做网站难吗贵州省建设厅网站查
  • 现在做个人网站汽贸公司网站建设
  • 工信部网站备案查询系统江门市专业做网站公司
  • 网站app推广怎么做室内设计公司经营范围
  • 手机浏览器 网站开发临沂建站公司
  • 网站建设数据库代码wordpress 分享 qq
  • 网站地址搜索网络服务提供者发现未成年通过网络发布
  • 网站设计网页主页介绍wordpress 即时通讯
  • 淘宝网站建设手机版什么网站可以做数据图
  • 赣州网站建设jx25懒人网页编辑器手机版
  • 服务器iis搭建网站东莞网站推广怎么做
  • 网站推广和优化的原因网络营销稷山网站建设
  • 医生在网站上做自我宣传网站设计制作ihanshi
  • ps做网站头部的图做俄罗斯网站
  • 网站内容建设怎么写无锡工程造价信息网
  • 适合seo优化的站点洛阳做网站公司
  • 网站业务费如何做记账凭证短视频seo关键词