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

怎样做网站瑞昌网站建设

怎样做网站,瑞昌网站建设,wordpress插件放那个文件夹,wordpress后台多媒体不显示缩链表 文章目录 链表前言认识链表单链表结构图带头单循环链表结构图双向循环链表结构图带头双向循环链表结构图 链表特点 链表实现(带头双向循环链表实现)链表结构体(1) 新建头节点(2) 建立新节点(3)尾部插入节点(4)删除节点(5)头部插入节点(6) 头删节点(7) 寻找节点(8) pos位置…

链表

文章目录

  • 链表
    • 前言
    • 认识链表
        • 单链表结构图
        • 带头单循环链表结构图
        • 双向循环链表结构图
        • 带头双向循环链表结构图
      • 链表特点
    • 链表实现(带头双向循环链表实现)
        • 链表结构体
        • (1) 新建头节点
        • (2) 建立新节点
        • (3)尾部插入节点
        • (4)删除节点
        • (5)头部插入节点
        • (6) 头删节点
        • (7) 寻找节点
        • (8) pos位置插入节点
        • (9) 删除pos位置节点
        • (10) 打印链表
        • 测试用例

前言

new一个奶黄包:没关系,这条路我陪你走到底

在这里插入图片描述

认识链表

单链表结构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CAU6jKY6-1692328909256)(https://flowus.cn/preview/624afaec-e422-4877-8061-cb639a1325b7)]

带头单循环链表结构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4euIvGQg-1692328833369)(链表+2506bbec-fbf0-438b-8319-a4e748b4a543/image.png)]

双向循环链表结构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1uetT2ky-1692328833370)(链表+2506bbec-fbf0-438b-8319-a4e748b4a543/image 1.png)]

带头双向循环链表结构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ITJxFGxY-1692328833370)(链表+2506bbec-fbf0-438b-8319-a4e748b4a543/image 2.png)]

链表特点

  • 单链表在内存中,并不是连续存储的(逻辑上连续)。

  • 不支持随机访问

  • 插入时只需要改变指针指向

  • 没有容量的概念

  • 可以高效的在任意位置插入&&删除

  • 缓存利用率低

链表实现(带头双向循环链表实现)

链表结构体

typedef int LTDataType;
typedef struct ListNode
{LTDataType data;struct ListNode* next;struct ListNode* prev;
}LTNode;

(1) 新建头节点

LTNode* ListInit()//建立头节点
{LTNode* phead = buyListNode(-1); //建立一个带头节点phead->next = phead;      phead->prev = phead;return phead;
}

(2) 建立新节点

LTNode* buyListNode(LTDataType x)//创建内存初始化数据  
{LTNode* newnode = (LTNode*)malloc(sizeof(LTNode)); //if (newnode == NULL){perror("malloc fail");exit(-1);}// 初始化:注意所对的结构来初始化newnode->next = NULL;newnode->prev = NULL;newnode->data = x;return newnode;
}

(3)尾部插入节点

void LTPushBack(LTNode* phead, LTDataType x)
{assert(phead);LTNode* newnode = buyListNode(x);LTNode* tail = phead->prev;tail->next = newnode;newnode->prev = tail;newnode->next = phead;phead->prev = newnode;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uzvehYMH-1692328833370)(链表+2506bbec-fbf0-438b-8319-a4e748b4a543/image 3.png)]

(4)删除节点

void LTPopBack(LTNode* phead)
{assert(phead);LTNode* tail = phead->prev;  //记录上一个节点LTNode* tailmove =tail->prev;  //记录上一个节点的上一个节点tailmove->next = phead;    phead->prev = tailmove;free(tail);
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hCUDDN9I-1692328833371)(链表+2506bbec-fbf0-438b-8319-a4e748b4a543/image 4.png)]

(5)头部插入节点

void LTPushFront(LTNode* phead, LTDataType x)
{assert(phead);LTNode* newnode = buyListNode(x); LTNode* first = phead->next;newnode->next = first;first->prev = newnode;first->next = phead;phead->prev = first;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vx0P45G2-1692328833371)(链表+2506bbec-fbf0-438b-8319-a4e748b4a543/image 5.png)]

(6) 头删节点

void LTPopFront(LTNode* phead)
{assert(phead);  //判断是否有头节点assert(phead->next != NULL);  //判断第一个节点是否存在LTNode* tail = phead->next;LTNode* tailmove = tail->next;tailmove->prev = phead;phead->next = tailmove;tailmove->next = phead;phead->prev = tailmove;free(tail);
}

在这里插入图片描述

(7) 寻找节点

LTNode* LTFind(LTNode* phead, LTDataType x)
{assert(phead);LTNode* cur = phead->next;while (cur != phead){if (cur->data == x){//printf("找到了");return cur;//返回指针}cur=cur->next; //每次都走到下一个节点直到phead}//printf("找不到");return NULL;
}

(8) pos位置插入节点

void LTInsert(LTNode* pos, LTDataType x)//头插尾插都可以调用这个函数 
{assert(pos);LTNode* newnode = buyListNode(x); //新建一个节点LTNode* prev = pos->prev;   //记录pos位置的前一个节点newnode->next = pos;   //新节点的下一个节点就是pospos->prev = newnode;   //pos位置节点prve就链接后面newnode->prev = prev;prev->next = newnode;
}

在这里插入图片描述

(9) 删除pos位置节点

void LTErase(LTNode* pos)  //删除节点
{assert(pos);LTNode* prve = pos->prev;LTNode* next = pos->next;prve->next = next;next->prev = prve;free(pos);
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1IWfpl22-1692328833371)(链表+2506bbec-fbf0-438b-8319-a4e748b4a543/image 7.png)]

(10) 打印链表

void LTPrint(LTNode* phead)
{assert(phead);LTNode* cur = phead->next;while (cur!= phead){printf("-> %d ",cur->data );cur = cur->next;}}

测试用例

void test1()
{LTNode* ptail = ListInit();LTPushBack(ptail, 1);LTPushBack(ptail, 3);LTPushBack(ptail, 2);LTPushBack(ptail, 4);LTPushBack(ptail, 5);LTPopBack(ptail);LTPrint(ptail);
}
http://www.yayakq.cn/news/730450/

相关文章:

  • 扬中网站网站建设给帅哥做奴视频网站地址
  • 电子商务网站策划书2000字无备案网站 阿里联盟
  • 做网站卖专业卖文玩wordpress5.0代码执行
  • 全屏背景网站如何做到自适应wordpress博
  • 如何跟客户介绍网站建设和推广wordpress获取文章发布时间
  • 广东省建设合同备案网站西双版纳建设局网站
  • 网站开发用盗版犯法网站内容分享
  • 生产型或服务型企业网站有哪些做贷款网站
  • 宁波网站建设官网自己怎么做网站网页
  • 网页游戏网站7wordpress常规选项中没有备案号
  • 上海做网站找哪家好网站开发神书
  • 网站建设 锐颖科技江苏省建设主管部门网站
  • 南昌有哪些做网站的公司怎么优化一个网站
  • 网站建设一般都有什么项目托管竞价账户哪家好
  • 建设电影会员网站网站开发保密协议书
  • 在哪个公司建设网站好包头做网站
  • 河南省住房城乡建设门户网站wordpress插件后门
  • 淘宝联盟怎么做网站旅游网站首页设计图片
  • 宁波网站推广设计wordpress html 标签页
  • 太原模板建站定制网站做网站网关备案
  • 微信h5游戏网站建设企业网站制作服务
  • 网站设计大全嘉兴seo推广优化
  • 许昌网站开发哪家好知名网站建设平台
  • 个人网站开发视频手机推广app
  • 广西医院的网站建设网页设计模板html代码素材
  • 安徽网站定制推荐网站空间购买
  • 企业网站模板源码资源下载dede我的网站
  • 如何套用网站模板网页制作的常用工具
  • 陕西做网站的公司地址微官网与公众号
  • 馆陶网站建设价格邯郸信息港最新招聘