sever2012 网站建设,vr模式的网站建设公司,全网投放广告的渠道有哪些,外包公司排名前十前面我已经发过怎么实现链表以及顺序表#xff0c;今天大概的总结一下。
顺序表#xff1a;
1.能够随时的存取#xff0c;比较方便。
2.插入删除时#xff0c;需要挪动数据#xff0c;比较麻烦#xff0c;因为是连续存储。
3.存储密度相对于链表来说是比较高的#…前面我已经发过怎么实现链表以及顺序表今天大概的总结一下。
顺序表
1.能够随时的存取比较方便。
2.插入删除时需要挪动数据比较麻烦因为是连续存储。
3.存储密度相对于链表来说是比较高的存储单个字符的时候。
4.如果首次开辟的空间不够用后续还要继续扩容空间。比较麻烦。
链表
1.存储密度相比于顺序表比较低存储单个字符时。
2.插入删除数据时不需要挪动数据这个方便。
3.插入数据时如果是尾插则要遍历整个链表比较麻烦。也就是不支持随机访问。
4.不存在空间不够的情况只要插入数据就申请空间不存在浪费空间。
综上所述
如果题目要求的是频繁的插入数据或是删除数据我们应该要选择链表而如果题目要的是频繁的查找数据我们则要的是顺序表。根据他们的优缺点来进行取舍。 应用
它们应用的地方在数据结构中很广泛比如后面的串队列栈等等都会运用到。所以个人认为这个是学数据结构的基础。
栈其实栈以用链表表示也可以用顺序表表示但是我们知道栈的使用规则是先使用高地址后使用低地址而且还是先进后出的也是后进先出表示方法LIFO或FILO。也就是说可栈顶的元素是先出的所以这样就行了我们所说的压栈所以再用链表表示时我们只能用头插法和头删法这样的是不用遍历链表的时间复杂度是O(1).此种情况是不带头节点不循环的单链表。所以我们选择顺序表来表示栈更好一点。直接用尾插既不用遍历数组也不用挪动数据使用起来更加方便。
队列队列是先进先出的也就是FIFO。他其实也可以用这两种方法分别表示如果用链表来表示的话适合用尾插法头删法这样就可以保证FIFO。插入和删除的时间复杂度都是O(1)。复合队列的规则。如果用顺序表的话不考虑循环队列删除数据时要把挪动数据相对于链表来说是比较麻烦的也可以不用挪动数据但是这样就必须要挪动队列的头。所以个人认为不是循环队列的话还是用链表比较好。
串
串的话个人认为两个表示方法没有什么区别因为保存的是字符所以用链表表示的话存储密度低如果用顺序表的话七朵多种用顺序表表示的方法具体还是得看自己选哪一个具体的哪几种方法就不想细说了感兴趣的可以私聊我共同探讨一下。
所以综上所述在链表和顺序表中如何选择就看那个比较好方便满足条件。 上面总结了顺序表和链表的应用下面说说栈的应用不用说其实大家首先想到应该就是递归了因为递归很容易导致栈溢出所以首当其冲的就是递归了。其次就是上次我说的那个前/后缀表达式计算下来就是中缀表达式如何转后/前缀表达式都是可以运用栈思想的。还有就是括号的匹配让我们看看下面的题 就是匹配核心思想就是创建栈遇见左括号就压入栈中直到遇见右括号就停止然后是取出栈中的元素跟这个右括号匹配匹配成功就继续不成功就输出false。下面是实现的代码 总体实现的代码在上有更好的方法希望大家评论区指出这道题我用顺序表实现的栈如果用链表也可以不过此时就要写一个申请节点空间的函数每次压栈的时候都要调用次函数来申请节点所以我就用了静态的顺序表来实现直接一次性开劈大点 浪费了很多空间。 最后的总结
链表的核心思想就是插入删除查找等方法都是一样的。顺序表就更不用说了大部分题型都可以用数组的方法来做。 最后如果本篇文章对你有帮助的话就点一下赞支持一下吧