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

电脑维护网站模板40个界面ui外包多少钱

电脑维护网站模板,40个界面ui外包多少钱,成都网站制作scgckj,怎样做访问外国网站才能不卡目录 认识带头双向循环链表 双向链表 循环链表 带头链表 带头双向循环链表 双向链表的优势和不足#xff1a; 顺序表的优势和不足#xff1a; 实现带头双向循环链表 创建带头双向循环链表 初始化 创建返回链表的头结点 打印链表 尾插 尾删 头插 头删 查找 在…目录 认识带头双向循环链表  双向链表 循环链表 带头链表 带头双向循环链表 双向链表的优势和不足 顺序表的优势和不足  实现带头双向循环链表 创建带头双向循环链表 初始化 创建返回链表的头结点 打印链表 尾插 尾删 头插 头删 查找 在pos位置前插入 删除pos位置 销毁 总代码 ListNode.h ListNode.c test.c 认识带头双向循环链表  双向链表 我们之前认学习的单链表是包含一个next指针指向下一个结点而双向链表既有next指针又有一个前指针指向前一个结点 循环链表 循环链表就是最后一个结点的next不指向NULL指向第一个结点 带头链表 带头链表就是带哨兵位的头结点head头结点不存数据 带头双向循环链表 无头单向非循环链表结构简单一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构如哈希桶、图的邻接表等等。另外这种结构在笔试面试中出现很多。带头双向循环链表结构最复杂一般用在单独存储数据。实际中使用的链表数据结构都是带头双向循环链表。另外这个结构虽然结构复杂但是使用代码实现以后会发现结构会带来很多优势实现反而简单 双向链表的优势和不足 双向链表的优势 任意位置插入删除都是O(1)按需申请释放合理利用空间不存在浪费 问题 下标的随机访问不方便O(N) 顺序表的优势和不足  顺序表的优势 支持下标的随机访问O(1) 问题 头插或中间插入的效率低O(N)空间不够需要扩容有一定的消耗且可能存在一定的空间浪费只适合尾插尾删 实现带头双向循环链表 同样我们创建三个文件来实现 创建带头双向循环链表 我们在结构体中定义val存数据prev指向前一个结点next指向下一个结点 初始化 让phead-next和phead-prev都指向phead给phead-val赋值为-1最后返回phead 创建返回链表的头结点 打印链表 尾插 尾删 头插 头删 头结点不能删 所以我们要assert(phead-next ! phead) 查找 在pos位置前插入 特殊情况 LTInsert(phead-next,x)就是头插LTInsert(phead,x)就是尾插 删除pos位置 特殊情况 LTErase(phead-next)就是头删LTErase(phead-prev)就是尾删 销毁 总代码 ListNode.h #pragma once #includestdio.h #includestdlib.h #includeassert.h typedef int LTDataType; typedef struct ListNode {LTDataType val;struct ListNode* prev;struct ListNode* next; }LTNode;//初始化 LTNode* LTInit(); //创建返回链表的头结点. LTNode* CreateLTNode(LTDataType x); //打印 void LTPrint(LTNode* phead);//尾插 void LTPushBack(LTNode* phead, LTDataType x); //尾删 void LTPopBack(LTNode* phead); //头插 void LTPushFront(LTNode* phead, LTDataType x); //头删 void LTPopFront(LTNode* phead); //查找 LTNode* LTFind(LTNode* phead, LTDataType x); //在pos位置前插入 void LTInsert(LTNode* pos, LTDataType x); //删除pos位置 void LTErase(LTNode* pos); //销毁 void LTDestroy(LTNode* phead); ListNode.c #define _CRT_SECURE_NO_WARNINGS 1 #includeListNode.h //初始化 LTNode* LTInit() {LTNode* phead CreateLTNode(-1);phead-next phead;phead-prev phead;return phead; } //创建返回链表的头结点. LTNode* CreateLTNode(LTDataType x) {LTNode* newnode (LTNode*)malloc(sizeof(LTNode));if (newnode NULL){perror(malloc fail);exit(-1);}newnode-val x;newnode-next NULL;newnode-prev NULL;return newnode; } //打印 void LTPrint(LTNode* phead) {assert(phead);LTNode* cur phead-next;printf(哨兵位);while (cur ! phead){printf(%d, cur-val);cur cur-next;}printf(哨兵位\n); } //尾插 void LTPushBack(LTNode* phead, LTDataType x) {assert(phead);LTNode* tail phead-prev;LTNode* newnode CreateLTNode(x);tail-next newnode;newnode-prev tail;phead-prev newnode;newnode-next phead; } //尾删 void LTPopBack(LTNode* phead) {assert(phead);assert(phead-next ! phead);LTNode* tail phead-prev;LTNode* tailPrev tail-prev;free(tail);tailPrev-next phead;phead-prev tailPrev; } //头插 void LTPushFront(LTNode* phead, LTDataType x) {assert(phead);LTNode* newnode CreateLTNode(x);LTNode* first phead-next;newnode-next first;first-prev newnode;phead-next newnode;newnode-prev phead; } //头删 void LTPopFront(LTNode* phead) {assert(phead);assert(phead-next ! phead);LTNode* first phead-next;LTNode* second first-next;phead-next second;second-prev phead;free(first);first NULL; } //查找 LTNode* LTFind(LTNode* phead, LTDataType x) {assert(phead);LTNode* cur phead-next;while (cur ! phead){if (cur-val x){return cur;}cur cur-next;}return NULL; } //在pos位置前插入 void LTInsert(LTNode* pos, LTDataType x) {assert(pos);LTNode* newnode CreateLTNode(x);LTNode* posprev pos-prev;posprev-next newnode;newnode-prev posprev;newnode-next pos;pos-prev newnode; } //删除pos位置 void LTErase(LTNode* pos) {assert(pos);LTNode* posprev pos-prev;LTNode* posnext pos-next;posprev-next posnext;posnext-prev posprev;free(pos);pos NULL; } //销毁 void LTDestroy(LTNode* phead) {assert(phead);LTNode* cur phead-next;while (cur ! phead){LTNode* next cur-next;free(cur);cur next;}free(phead);phead NULL; } test.c #define _CRT_SECURE_NO_WARNINGS 1 #includeListNode.h int main() {LTNode* plist LTInit();//尾插LTPushBack(plist, 1);LTPushBack(plist, 2);LTPushBack(plist, 3);LTPushBack(plist, 4);LTPrint(plist);//尾删LTPopBack(plist);LTPrint(plist);//头插LTPushFront(plist, 0);LTPrint(plist);//头删LTPopFront(plist);LTPrint(plist);//查找 pos前插LTNode* pos LTFind(plist, 3);LTInsert(pos, 3);LTPrint(plist);//删除pos位置LTErase(pos);LTPrint(plist);//销毁LTDestroy(plist);return 0; }
http://www.sadfv.cn/news/199767/

相关文章:

  • 佛山个人网站建设报个计算机培训班多少钱
  • 建设网站需要先构建好模型网站建设维护工作
  • 网店装修网站博罗网站建设公司
  • 网站主页特效欣赏微信开放平台官方网站
  • wp建站优化阿里邮箱企业版入口
  • 网站规划与建设大作业答案如何把网站程序做授权网址访问
  • 网站开发公司模板定制家具品牌排行榜前十名
  • 国外互联网资讯网站张家港网站网络公司
  • 什么叫网站app网站怎么做才吸引人
  • 北京南站在几环爱站网关键词怎么挖掘
  • 杭州专业网站排名优化做游戏网站赚钱么
  • 公司网站如何做seo今天31个省新增最新消息视频
  • 建立网站的意义宇宙设计网站推荐
  • 网站做线支付平台系统多少钱凡客达人的运作模式
  • 海南省建设银行官方网站招聘温州网站制作多少钱
  • 国内it培训机构排名网站建设和seo
  • 黑龙江省建设安全协会网站外汇网站怎么做优化
  • 建瓯做网站的公司乐清网络问效平台
  • 怎么导入网站源码最新汽油价格调整最新消息
  • 电子商务网站建设考试重点高端品牌网站建设建议
  • 如何自己做的网站推广优化网站排名
  • 快速知彼网络网站建设国内优秀网站网址
  • 自己视频怎么上传网站炫彩发光字制作
  • 网站建设证据保全全国信息企业查询系统官网
  • 中铁广州建设有限公司网站驻马店 市网站建设
  • 合肥建筑网站大全成都高端网站建设哪家好
  • 长春网络建站企业网站建站费用
  • wordpress软件门户主题网站建设优化公司哪家好
  • 网站开发设计实训 报告合肥网站建设方案
  • 宝安做网站哪家好揭阳市seo上词外包