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

关于dw做网站网络设计包括哪些方面

关于dw做网站,网络设计包括哪些方面,网站图片做多大,小小影视免费1.定义: (1)单链表:各个结点散落在内存中的各个角落,每个结点有指向下一个节点的指针(下一个结点在内存 中的地址); (2)静态链表:用数组的方式来描述线性表的链式存储结构: 分配一…

1.定义:

(1)单链表:各个结点散落在内存中的各个角落,每个结点有指向下一个节点的指针(下一个结点在内存 中的地址);

(2)静态链表:用数组的方式来描述线性表的链式存储结构分配一整片连续的内存空间,各个结点集中安置,包括了——数据元素and下一个结点的数组下标(游标)

其中数组下标为0的结点充当"头结点"

游标为-1表示已经到达表尾

若每个数据元素为4B,每个游标为4B,则每个结点共8B;假设起始地址为addr,则数据下标为2的存放地址为:addr+8*2

注意: 数组下标——物理顺序,位序——逻辑顺序; 优点:增、删操作不需要大量移动元素;

缺点:不能随机存取,只能从头结点开始依次往后查找,容量固定不变!

2.静态链表用代码表示:

也可以这样:

也等同于:

注意:SLinkList a 强调a是静态链表;struct Node a 强调a是一个Node型数组;

3.静态链表基本操作的实现

(1)初始化静态链表:把a[0]next设为-1

void InitList(StaticLinkedList *list) {
    list->head = -1; // 设置头节点的next为-1表示空链表
    list->size = 0;

    // 初始化所有节点为未使用状态,通常将next设置为下一个节点的索引表示空闲
    for (int i = 0; i < MAXSIZE - 1; i++) {
        list->nodes[i].next = i + 1;
    }
    list->nodes[MAXSIZE - 1].next = -1; // 最后一个节点的next设置为-1
}

(2)查找某个位序(不是数组下标,位序是各个结点在逻辑上的顺序)的结点:从头结点出发挨个往后遍历结点,时间复杂度O=(n)

Index FindByPosition(StaticLinkedList *list, int position) {
    if (position < 0 || position >= list->size) {
        return -1; // 位序无效
    }
    int curPosition = 0;
    Index currentIndex = list->head;
    while (currentIndex != -1 && curPosition < position) {
        currentIndex = list->nodes[currentIndex].next;
        curPosition++;
    }
    return currentIndex;
}

(3)在位序为i上插入结点:① 找到一个空的结点,存入数据元素;② 从头结点出发找到位序为i-1的结点;③修改新结点的next;④ 修改i-1号结点的next

void Insert(StaticLinkedList *list, ElementType element, int position) {
    if (position < 0 || position > list->size) {
        return; // 位序无效
    }

    // 找到一个空闲节点用于插入新元素
    Index newNodeIndex = list->nodes[0].next; 
    if (newNodeIndex != -1) { // 确保还有空闲节点
        list->nodes[0].next = list->nodes[newNodeIndex].next;
        
        list->nodes[newNodeIndex].data = element; // 存储数据
        
        if (position == 0) { // 如果是在头部插入
            list->nodes[newNodeIndex].next = list->head; // 新节点指向原头节点
            list->head = newNodeIndex; // 头节点更新为新节点
        } else {
            Index prevNodeIndex = FindByPosition(list, position - 1); // 找到前一个节点
            list->nodes[newNodeIndex].next = list->nodes[prevNodeIndex].next; // 新节点指向前节点的下一节点
            list->nodes[prevNodeIndex].next = newNodeIndex; // 前节点指向新节点
        }
        list->size++;
    }
}

(4)删除某个结点:① 从头结点出发找到前驱结点;② 修改前驱节点的游标;③ 被删除节点next设为-2

4.学习总结:

静态链表使用数组模拟链表,每个元素包含数据和游标(下一个节点的索引)。
初始化时需设置一个头节点,并将所有节点串联起来作为一个空闲节点列表。
查找时需要遍历链表直到达到指定位置。这个操作的时间复杂度为O(n)。
插入操作包括寻找空闲节点、连接与前一个节点以及更新链表大小。
静态链表的操作相较于动态链表来说更为复杂,但是在没有动态内存分配的环境下很有用。
在实践中,应用静态链表需要仔细管理空闲节点列表,避免内存的浪费和碎片化。
静态链表虽然不如动态链表灵活,但在某些限制内存的场景下可能非常有用。

http://www.yayakq.cn/news/903473/

相关文章:

  • 买了网站模版怎么做制作视频的软件哪个最好免费的
  • 网站内容被删除怎么取消收录微信小程序安装
  • 怎么制作一个网站企业网站seo网址
  • 电商网站建站开发语言公司邮箱怎么在手机上登录
  • 做网站时如何上传图片国外企业网络平台
  • 免费建各种网站重生主角做视频网站的小说
  • 涿州市网站建设留言页面设计模板
  • 网站建设方案设计书参考珠海手机网站建设
  • 山西建设厅官方网站专家库做网站可以用php吗
  • 做现金贷的网站有哪些如何与对方网站做相互链接
  • 做网站最好用的软件做网站建设的合同范本
  • 网站侧边栏模板网站建设 南通
  • 网站轮播图用啥软件做网站建设中如何兼容所有浏览器
  • 深圳场站建设发展有限公司旅行社手机网站建设
  • 无代码网站开发平台有哪些wordpress雪人2.0主题
  • 物理机安装虚拟机做网站好处快速企业建站
  • 网站图标ico大庆建设银行网站
  • 省级示范校建设网站成都百度公司在哪里
  • 儿童主题网站的内容建设河北交通建设投资集团公司网站
  • 写作网站名字迎访问中国建设银行网站-
  • 做网站前的准备oa系统哪个品牌好
  • 教育培训 营销型网站系统出入库管理系统软件
  • 点播视频网站怎么建设推广策略及推广方式
  • 新建网站百度怎么收录优秀的网站建设推荐
  • 大朗网站仿做黑龙江建设网ca数字证书如何注销
  • 公司建网站多少钱合适wordpress主机怎么填
  • 专门帮做ppt的网站吗阿里云服务器上的网站怎么做修改
  • 许昌住房城乡建设局网站游戏优化是什么意思?
  • 国学网站源码网站章子怎么做
  • 自己做视频网站 在优酷推广网页版微信怎么加好友