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

好网站建设公司哪里好iis的默认网站没有自动启动

好网站建设公司哪里好,iis的默认网站没有自动启动,企业网站怎么做中英文切换,代理注册公司一般多少钱408答疑 文章目录 三、 线性表的链式表示双循环链表单链表与双链表的比较单链表的特点双链表的特点 双链表上基本操作的实现双链表的插入操作双链表的删除操作 双链表的代码实操定义结点创建一个结点带头结点的双链表初始化创建双链表打印双链表查找结点插入结点在指定节点后插…

408答疑


文章目录

  • 三、 线性表的链式表示
    • 双循环链表
      • 单链表与双链表的比较
        • 单链表的特点
        • 双链表的特点
      • 双链表上基本操作的实现
        • 双链表的插入操作
        • 双链表的删除操作
      • 双链表的代码实操
        • 定义结点
        • 创建一个结点
        • 带头结点的双链表初始化
        • 创建双链表
        • 打印双链表
        • 查找结点
        • 插入结点
          • 在指定节点后插入新节点
          • 在指定节点前插入新节点
        • 删除结点
        • 反转链表
        • 排序链表
      • 循环链表
        • 循环单链表
          • 操作描述
          • 操作特点
        • 循环双链表
      • 链表的分类
  • 五、参考资料
    • 鲍鱼科技课件
    • 26王道考研书


三、 线性表的链式表示

双循环链表

单链表与双链表的比较

单链表的特点
  • 单链表结点中只有一个指向其后继的指针,使得单链表只能从前往后依次遍历。
  • 访问某个结点的前驱(插入、删除操作时),只能从头开始遍历,访问前驱的时间复杂度为 O ( n ) O(n) O(n)
  • 为了克服单链表的这个缺点,引入了双链表。
双链表的特点
  • 双链表结点中有两个指针 priornext,分别指向其直接前驱和直接后继,如下图所示。表头结点的 prior 域和尾结点的 next 域都是 NULL

在这里插入图片描述

  • 双链表在单链表结点中增加了一个指向其前驱的指针 prior,因此双链表的按值查找和按位查找的操作与单链表的相同。但双链表在插入和删除操作的实现上,与单链表有着较大的不同。这是因为“链”变化时也需要对指针 prior 做出修改,其关键是保证在修改的过程中不断链。此外,双链表可以很方便地找到当前结点的前驱,因此,插入、删除操作的时间复杂度仅为 O ( 1 ) O(1) O(1)

双链表上基本操作的实现

双链表的插入操作
  • 在双链表中 p 所指的结点之后插入结点 *s,其指针的变化过程如图所示。

在这里插入图片描述

  • 插入操作的步骤如下:

    1. s->next 指向 p->next
    2. p->next->prior 指向 s
    3. s->prior 指向 p
    4. p->next 指向 s
  • 上述代码的语句顺序不是唯一的,但也不是任意的。步骤 1 必须在步骤 4 之前,否则 *p 的后继结点的指针就会丢失,导致插入失败。

双链表的删除操作
  • 删除双链表中结点 *p 的后继结点 *q,其指针的变化过程如图所示。

在这里插入图片描述

  • 删除操作的步骤如下:

    1. p->next 指向 q->next
    2. q->next->prior 指向 p
    3. 释放 q 结点空间

双链表的代码实操

定义结点
  • 定义双链表的节点类型,包括数据域、前驱指针和后继指针。
typedef struct DCListNode {ElemType data;          // 数据域struct DCListNode *prev; // 前驱指针struct DCListNode *next; // 后继指针
} DCListNode, *DCLinkList;
创建一个结点
  • 创建并初始化一个新的双链表节点。
DCListNode* buyNode(ElemType x) {DCListNode *s = (DCListNode*)malloc(sizeof(DCListNode));s->data = x;return s;
}
带头结点的双链表初始化
  • 初始化一个带头结点的双链表。
void initDCList(DCListNode **head) {*head = (DCListNode*)malloc(sizeof(DCListNode));(*head)->prev = *head;(*head)->next = *head;
}
创建双链表
  • 根据给定数组创建一个双链表。
void createDCList(DCLinkList DCL, ElemType ar[], int n) {DCListNode *p = DCL;for (int i = 0; i < n; ++i) {DCListNode *s = (DCListNode*)malloc(sizeof(DCListNode));s->data = ar[i];s->prev = p->prev;s->next = p;p->prev->next = s;p->prev = s;}
}
打印双链表
  • 从头结点的下一个节点开始,打印链表中的每个节点数据,直到回到头结点。
void printDCList(DCLinkList DCL) {DCListNode *p = DCL->next;while (p != DCL) {printf("%d-->", p->data);p = p->next;}printf("Over.\n");
}
查找结点
  • 从头结点开始,遍历链表直到找到目标节点或到达头结点。
DCListNode* findDCNode(DCLinkList DCL, ElemType key) {DCListNode *p = DCL->next;while (p != DCL && p->data != key)p = p->next;if (p != DCL)return p; // 找到了节点return NULL;  // 没有找到节点
}
插入结点
在指定节点后插入新节点
  • 在双链表中指定节点 pos 之后插入一个新节点 x。
void insertDCNodeBack(DCLinkList DCL, DCListNode *pos, ElemType x) {DCListNode *s = buyNode(x);s->prev = pos;s->next = pos->next;s->next->prev = s;s->prev->next = s;
}
在指定节点前插入新节点
  • 在双链表中指定节点 pos 之前插入一个新节点 x。
void insertDCNodeFront(DCLinkList DCL, DCListNode *pos, ElemType x) {DCListNode *s = buyNode(x);s->prev = pos->prev;s->next = pos;s->next->prev = s;s->prev->next = s;
}
删除结点
  • 找到目标节点,调整前后节点的指针并释放目标节点。
void deleteDCNode(DCLinkList DCL, ElemType key) {DCListNode *p = findDCNode(DCL, key);if (p == NULL)return; // 删除失败p->prev->next = p->next;p->next->prev = p->prev;free(p);
}
反转链表
  • 逐个摘除链表中的节点并重新插入到链表头部。
void reverseDCList(DCLinkList DCL) {DCListNode *p = DCL->next;DCListNode *q = p->next;p->next = DCL;DCL->prev = p;while (q != DCL) {p = q;q = q->next;p->next = DCL->next;p->prev = DCL;p->prev->next = p;p->next->prev = p;}
}
排序链表
  • 逐个摘除链表中的节点并按顺序插入到链表中。
void sortDCList(DCLinkList DCL) {DCListNode *p = DCL->next;DCListNode *q = p->next;p->next = DCL;DCL->prev = p;while (q != DCL) {p = q;q = q->next;DCListNode *cur = DCL->next;while (cur != DCL && p->data > cur->data)cur = cur->next;p->next = cur;p->prev = cur->prev;p->prev->next = p;p->next->prev = p;}
}

循环链表

循环单链表
  • 循环单链表的特点是最后一个结点的 next 指针指向头结点,形成一个环。这种结构使得链表可以从任意位置开始遍历,而不必担心到达链表的末尾,如下图所示。

在这里插入图片描述

  • 特点
    • 表尾结点的 next 域指向头结点。
    • 判空条件不是头结点的指针是否为空,而是它是否等于头指针 L
操作描述
  • 循环单链表的插入、删除算法与单链表的几乎一样,所不同的是,若操作是在表尾进行,则执行的操作不同,以让单链表继续保持循环的性质。这是因为循环单链表是一个“环”,所以在任何位置上的插入和删除操作都是等价的,而无须判断是否是表尾。
操作特点
  • 在单链表中只能从表头结点开始往后顺序遍历整个链表,而循环单链表可以从表中的任意一个结点开始遍历整个链表。
  • 有时对循环单链表不设头指针而仅设尾指针,以使得操作效率更高。其原因是,若设的是头指针,对在表尾插入元素需要 O ( n ) O(n) O(n) 的时间复杂度,而若设的是尾指针 rr->next 即头指针,对在表头或表尾插入元素都只需要 O ( 1 ) O(1) O(1) 的时间复杂度。
循环双链表
  • 循环双链表在循环单链表的基础上增加了一个指向前驱的指针 prior,使得链表可以从任意结点向前或向后遍历,如下图所示。

在这里插入图片描述

  • 特点
    • 头结点的 prior 指针指向表尾结点。
    • 尾结点的 next 指针指向头结点。
    • 判空条件是头结点的 priornext 域都等于 L

链表的分类

  • 循环链表可以是单链表或双链表,可以带头结点或不带头结点,也可以是循环的或非循环的( 2 3 2^3 23种可能性)。这三种特性可以组合出八种不同的链表类型,如下图所示。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

五、参考资料

鲍鱼科技课件

b站免费王道课后题讲解:
在这里插入图片描述

网课全程班:
在这里插入图片描述

26王道考研书


文章转载自:

http://oCiDbVzs.yqtry.cn
http://EA7qAV9f.yqtry.cn
http://4NM8MOe9.yqtry.cn
http://0i0fivlT.yqtry.cn
http://sKCZT72z.yqtry.cn
http://JLroVuEJ.yqtry.cn
http://jevCxF83.yqtry.cn
http://tjnpl0N8.yqtry.cn
http://0bXytQhD.yqtry.cn
http://2XavDc1s.yqtry.cn
http://gKuZSMyd.yqtry.cn
http://j1hnRtvY.yqtry.cn
http://69yku2nq.yqtry.cn
http://kWVZANqw.yqtry.cn
http://xy12Em0q.yqtry.cn
http://xIV7QWns.yqtry.cn
http://xTqKM8T8.yqtry.cn
http://6U0ghMJb.yqtry.cn
http://zYgplOSz.yqtry.cn
http://OEbrHeIl.yqtry.cn
http://95Uv0Hfs.yqtry.cn
http://iozVB7HU.yqtry.cn
http://zamPJyFG.yqtry.cn
http://9TftaLBC.yqtry.cn
http://kIVT5Agu.yqtry.cn
http://C2X5srHn.yqtry.cn
http://O2fomir9.yqtry.cn
http://bM3twiE2.yqtry.cn
http://MXDZf3qe.yqtry.cn
http://xpsGQwmp.yqtry.cn
http://www.dtcms.com/wzjs/706811.html

相关文章:

  • 网站设计精美案例上海企业网站设计制作
  • 一学一做看视频网站有哪些国际十大公关公司
  • 网站伪静态文件软件开发者平台有哪些
  • 教做西餐的网站ipad wordpress 应用
  • 毕节市网站建设做化工的外贸网站都有什么地方
  • 贵州城乡住房和建设厅网站国外好看的网站设计
  • 域名到期对网站的影响wordpress 换数据库
  • 网站建设字体变色代码智慧政务门户网站建设方案
  • wordpress 仿站小工具粤健康app下载
  • 好站站网站建设餐饮业网站建设
  • 网站设计和建设帮忙卖货的平台
  • 做苗木网站哪家做得好wordpress 主题显示图片
  • 大连三合一网站制作网页设计实验报告总结与展望
  • 如何作网站做技能培训和那个网站合作好
  • 浙江 网站建设做请帖网站
  • 网站挂马检测流程图江苏省建设考试网站准考证打印
  • 企业计划书网站关键词优化推广哪家快
  • 招标网址网站大全万户网络app
  • 网站建设合同百度文库公司起名用字大全
  • 怎么把网站放到空间亚马逊德国做deals 网站
  • 运城公司网站建设青岛设计网站的公司哪家好
  • 大气好看的网站网站建站的类型
  • 深圳做网站知名排行朝阳市做网站
  • 河南网站建设网络公司免费学习网站建设
  • 国内外建筑设计网站wordpress页面右上
  • 网站站点管理机械网站建设公司
  • 电子商务网站建设效果wordpress 文章保存在哪里
  • 住房城乡建设部官方网站创意设计公司经营范围
  • 网站的内容深圳市住房和建设局高泉
  • php电子商务网站开发实例百度推广官网全国开户:sk67666