线性表是一种常用的数据结构,通常用来存储数据,存储方式是线性的。常见的线性表有顺序表, 链表等。顺序表是基于数组实现的,链表是通过一个个节点链接而成。线性表具有随机访问的机制,可以 在任意位置插入和删除数据元素。 C语言实现: #define MaxSize 10 typedef struct{ c ...
分类:
其他好文 时间:
2019-09-13 17:34:58
阅读次数:
110
上一篇博客简单讲述了一下两种结构的概念这一篇博客主要想讲述一下他们之间的区别 顺序存储结构与链式存储结构的优缺点 顺序存储结构 概念官方一点来说可以使用 "百度百科" 的介绍:顺序存储结构是存储结构类型中的一种,该结构是把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元 ...
分类:
其他好文 时间:
2019-09-12 17:59:32
阅读次数:
98
快速排序 平均时间复杂度O(nlogn); 最好情况时间复杂度O(nlogn),pivotkey基本处于顺序表中间; 最坏情况时间复杂度O(n),顺序表处于正序和倒序; 最好情况空间复杂度O(logn),要执行logn次递归调用; 最坏情况空间复杂度O(n),要执行n-1次递归调用; ...
分类:
编程语言 时间:
2019-09-11 16:18:54
阅读次数:
84
/* sequenceList.c */ /* 顺序表 */ /* 线性表的顺序存储是指在内存中用地址连续的一块存储空间顺序存放线性表中的各项数据元素,用这种存储形式的线性表称为顺序表。 */ #include #include #include #define MAXSIZE 10 /* 顺序表结... ...
分类:
其他好文 时间:
2019-09-09 14:51:15
阅读次数:
81
一.线性结构和非线性结构 1. 线性结构 + 线性结构作为最常用的数据结构,其特点是数据元素之间存在 一对一 的线性关系 + 线性结构有两种不同的存储结构,即 顺序存储结构 和 链式存储结构 。顺序存储的线性表称为 顺序表 ,顺序表中的存储元素是 连续 的 + 链式存储的线性表称为 链表 ,链表中的 ...
分类:
编程语言 时间:
2019-09-05 23:20:43
阅读次数:
122
最近在看链表,今天刷到一道链表的反转题,链表反转可以说是基础操作,但是可提供的方案也有很多,简单通过了该题后又学习了一下递归反转,现在把三种方法都公开出来做一个总结。 1.就地逆置 2.单参数的递归逆置 3.双参数的递归逆置 一、就地逆置 方法:头插。 由于这里是不带表头结点的单向链表,所以头插会稍 ...
分类:
其他好文 时间:
2019-09-03 22:36:23
阅读次数:
106
二分查找:又称为折半查找,适用于排好序的顺序表。 基本思路:首先将给定的查找值K,与表中的中间位置的元素的关键字进行比较,若相等,则返回该元素的位置;若不等,表明所需查找的元素只能在中间元素的前半部分或者后半部分中;然后在缩小的范围中继续同样的查找,如此反复直到找到为止。 实现方式:递归实现和非递归 ...
分类:
其他好文 时间:
2019-09-01 14:56:52
阅读次数:
81
图a表示的是顺序表的基本形式,数据元素本身连续存储,每个元素所占的存储单元大小固定相同,元素的下标是其逻辑地址,而元素存储的物理地址(实际内存地址)可以通过存储区的起始地址加上逻辑地址(第i个元素)与存储单元大小(c)的乘积计算而得 故,访问指定元素时无需从头遍历,通过计算便可获得对应地址,其时间复 ...
分类:
其他好文 时间:
2019-08-31 21:36:49
阅读次数:
80
总结了一些链表的重要操作,便于记忆,顺序表中有的就不赘述了
分类:
其他好文 时间:
2019-08-30 11:34:51
阅读次数:
65
Reverse a singly linked list. Example: Follow up: A linked list can be reversed either iteratively or recursively. Could you implement both? 思路: 重塑链表, ...
分类:
其他好文 时间:
2019-08-29 16:13:39
阅读次数:
92