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

制作网站哪家服务好嘉定房地产网站建设

制作网站哪家服务好,嘉定房地产网站建设,阿里云域名备案网站建设方案,wordpress淘宝客主题模板目录 一. 单链表的特点 1.1 解引用拓展 #x1f916; 二. 单链表的操作 2.1不带头节点的操作 2.1.1 打印 2.1.1.1 创建结点 2.1.2 尾插#xff08;需要二级指针#xff09; 注意形参的值不改变实参#xff1a;#xff08;精髓部分#xff09; 2.1.3 头插 2.1.4…目录 一. 单链表的特点 1.1 解引用拓展 二. 单链表的操作 2.1不带头节点的操作 2.1.1 打印  2.1.1.1 创建结点 2.1.2 尾插需要二级指针 注意形参的值不改变实参精髓部分 2.1.3 头插 2.1.4 尾删 2.1.5 头删 2.1.6 在pos前插入 2.1.7 删除pos位置  一. 单链表的特点 单链表的结点是随机的不是逻辑上相邻即物理上相邻的。用指针指向下一个节点的地址。 1.1 解引用拓展 解引用有两种* - *p的意思是是取p所指向内存的值取多少大小的值取决于结构体前的数据类型如int                         取四个字节char取一个字节。 p-的意思是 结构体用-,取决于-后面是什么值如果是-val则取data域的值-next则                       取下个结点的地址。相当于*p.next 二. 单链表的操作 单链表分为带头结点和不带头结点 ☆*: .. o(≧▽≦)o ..:*☆ 2.1不带头节点的操作 2.1.1 打印  打印不用二级指针的原因是打印不用改变外部结构体指针只用遍历打印就好了当要改变结构体指针就要用二级指针。 void SLTPrint(SLNode* phead) {SLNode* cur phead;while (cur ! NULL){printf(%d-, cur-val);cur cur-next;}printf(NULL\n); } 2.1.1.1 创建结点 SLNode* CreateNode(SLNDataType x) {SLNode* newnode (SLNode*)malloc(sizeof(SLNode));if (newnode NULL){perror(malloc fail);exit(-1);}newnode-val x;newnode-next NULL;return newnode; }2.1.2 尾插需要二级指针 void SLTPushBack(SLNode** pphead, SLNDataType x) {SLNode* newnode CreateNode(x);if (*pphead NULL){*pphead newnode;}else{// 找尾SLNode* tail *pphead;while (tail-next ! NULL){tail tail-next;}tail-next newnode;} } 注意形参的值不改变实参精髓部分 接下来是很多人都迷迷糊糊搞不懂的地方。 当前函数定义的可以直接修改不是当前当前函数定义的无论是外部函数还是malloc出来的空间访问时都要用指针去通过地址修改。全局变量可以直接修改。 形参不不能改变实参的要传实参的地址才能改变形参。 想用形参pphead改变外部指针phead实参 先将实参的地址plist传给实参pphead这时pphead代表的是plist地址plist*pphead解引用所以*pphead代表是plist这里是要改变SNode*所以要node**。这里是要修改结构体的指针plist所以是需要结构体指针的地址plist传给*pphead。 如果要改变外部定义的结构指针SLNode*要用二级指针SLNode**。 如果要改变外部定义的结构体Node就要一级指针Node*。 2.1.3 头插 void SLTPushFront(SLNode** pphead, SLNDataType x) {SLNode* newnode CreateNode(x);newnode-next *pphead;*pphead newnode; } 2.1.4 尾删 删后n-1个不需要二级指针直接free 但是只有一个空间的时候删掉plist就成了没有指向空间的野指针所以需要将plist置空需要改变结构体指针。  void SLTPopBack(SLNode** pphead) {// 温柔的检查//if (*pphead NULL)// return;// 空assert(*pphead);// 1、一个节点// 2、一个以上节点if ((*pphead)-next NULL){free(*pphead);*pphead NULL;}else{// 找尾/*SLNode* prev NULL;SLNode* tail *pphead;while (tail-next ! NULL){prev tail;tail tail-next;}free(tail);tail NULL;prev-next NULL;*/SLNode* tail *pphead;while (tail-next-next ! NULL){tail tail-next;}free(tail-next);tail-next NULL;} } 2.1.5 头删 void SLPopFront(SLNode** pphead) {assert(pphead);if ((*pphead) NULL) {free(*pphead);*pphead NULL;}else {/**pphead (*pphead)-next;free(*pphead);*/SLNode* tmp *pphead;*pphead (*pphead)-next;free(tmp);}} 2.1.6 在pos前插入 2.1.7 删除pos位置  不带头结点的完整代码  //头文件SList.h #pragma once #includestdio.h #includestdlib.htypedef int SLDataType; typedef struct SListNode {SLDataType val;struct SListNode* next;}SLNode; void SLPrint(SLNode* phead); void SLPushBack(SLNode** pphead, SLDataType x); void SLPopBack(SLNode** pphead); void SLPushFront(SLNode** pphead, SLDataType x); void SLPopFront(SLNode** pphead);//SList.c #define _CRT_SECURE_NO_WARNINGS #includestdio.h #includestdlib.h #includeSList.h #includeassert.h //打印 void SLPrint(SLNode* phead) {assert(phead);while (phead! NULL) {printf(%d-, phead-val);phead phead-next;}printf(NULL\n); } //创建新节点SLNode* CreateNode(SLDataType x) {SLNode* newnode (SLNode*)malloc(sizeof(SLNode));while (newnode NULL) {perror(malloc fail);exit(-1);}newnode-val x;newnode-next NULL;return newnode;}//尾插 void SLPushBack(SLNode** pphead, SLDataType x) {SLNode* newnode CreateNode(x); //调用函数,实参没有数据类型if (*pphead NULL) {*pphead newnode;}else {SLNode* tail *pphead;while (tail-next ! NULL) {tail tail-next;}newnode-next NULL;tail-next newnode;}} //尾删 void SLPopBack(SLNode** pphead) {assert(*pphead);if ((*pphead)-next NULL) {free(*pphead);*pphead NULL;}else {SLNode* pre NULL;SLNode* tail *pphead;while (tail-next ! NULL) {pre tail;tail tail-next;}free(tail);tail NULL;pre-next NULL;}} //头插 void SLPushFront(SLNode** pphead, SLDataType x) {SLNode* newnode CreateNode(x);/*if (*pphead NULL) {*pphead newnode;}*/ //可以不要newnode-next *pphead;*pphead newnode; } //头删 void SLPopFront(SLNode** pphead) {assert(pphead);if ((*pphead) NULL) {free(*pphead);*pphead NULL;}else {/**pphead (*pphead)-next;free(*pphead);*/SLNode* tmp *pphead;*pphead (*pphead)-next;free(tmp);}}//Test.c 文件 #define _CRT_SECURE_NO_WARNINGS #includeSList.hvoid Test1() {SLNode* splistNULL;SLPushBack(splist, 1);SLPushBack(splist, 2);SLPushBack(splist, 3);SLPushBack(splist, 4);SLPrint(splist);SLPopBack(splist);SLPopBack(splist);SLPrint(splist);SLPushFront(splist, 1);SLPushFront(splist, 2);SLPushFront(splist, 3);SLPushFront(splist, 4);SLPrint(splist);SLPopFront(splist);SLPopFront(splist);SLPrint(splist); } int main() {Test1();return 0;}
http://www.hkea.cn/news/14452149/

相关文章:

  • 自己能建网站吗织梦做的网站图片显示不了
  • 做自媒体的网站名字文网文许可证
  • 小说网站制作做网站外包好做吗
  • 徐州网站建设专家1688跨境电商平台
  • 租车公司网站模板网站一屏做多大
  • 移动端网站开发软件广州白云区最新信息
  • 招标网站有哪些有没有专业做二手老车的网站
  • WordPress批量建站系统设计asp网站
  • 自己做的网站百度搜不到品牌网上做推广
  • 化妆品网站建设目标厦门网站建设厦门
  • 网站提交百度了经常修改网站项目管理软件worktile
  • 有免费做网站的吗沙河市建设局网站
  • 杭州 手机网站建设河南省建设厅注册中心网站首页
  • 十堰网站制作公司电话深圳做网站在去那备案
  • 网站建设业务员怎么把自己的产品推广出去
  • 江苏盐城网站建设国家防疫新十条政策
  • 怎么创自己的网站南宁手机网站建设公司
  • 做网站和做app那个简单石家庄市住房城乡建设局网站
  • 常州微信网站建设如何选择做网站公司
  • 织梦网站栏目无法生成长安网站设计
  • 网站被别人备案wordpress wmv
  • 做淘宝一件代发的网站网站流量的主要来源有
  • 庐阳网站快速排名锦州建设银行网站
  • 海口网站制作微信网站合同
  • 关于做网站书籍手机优化怎样解除
  • 云南网站备案系统网站规划与设计方向
  • 如何注册网站域名备案上海短视频制作
  • 合肥市蜀山区做个网站多少钱欧美系列
  • 整个网站与网站模板的区别音乐网站建设成本
  • 招代理网站建设公司企业网站推广技巧有哪些