面试题目集锦--链表
前段时间一直在忙着找工作,在面试中也遇到了大量的算法题目,其中,问的比较多的是二叉树和链表之类的题目,在这里,我就把前段时间写的链表面试题贴出来,当然,由于题目很多,我只是在这里贴出它的类构造,不贴出实现的代码,需要的朋友可以去这里下载(免积分):
http://download.csdn.net/detail/dlutbrucezhang/8062413
如果因为其他别的原因下载不下来的话,留下你的邮箱,我会给你传一份。
好吧,下面贴出链表算法类:
template <typename T>
class dutNode
{
public :T data;dutNode<T>* next;dutNode() : data(T()), next(NULL) {}dutNode(const T& _data) : data(_data) {}dutNode(const T& _data, dutNode<T>* _next) : data(_data), next(_next) {}
};template <typename T>
class dutLinkList
{
private :int count;dutNode<T>* pHead;protected: /*包裹函数*/dutNode<T>* dutRecursionReverseList(dutNode<T>*);void dutReversePrintList(dutNode<T>*);void dutQuickSortByPointer(dutNode<T>* &, dutNode<T>* &);dutNode<T>* dutReverseOddAndEven(dutNode<T>*);dutNode<T>* dutRecursionMergeSortedList(dutNode<T>*, dutNode<T>*);dutNode<T>* dutNotRecursionMergeSortedList(dutNode<T>*, dutNode<T>*);dutNode<T>* dutFindBackwardsK(dutNode<T>*, int);dutNode<T>* dutFindMiddleElement(dutNode<T>*);bool dutHasCircle(dutLinkList<T>& ,dutNode<T>* &);void dutSwapData(T&, T&);public:dutLinkList();~dutLinkList();/*normal operation*/void dutPrintList() const;bool dutIsEmpty() const;int dutGetCount() const;int dutAddToListByArray(const T*, int);int dutAddToHead(const T&);int dutAddToTail(const T&);int dutAddNodeToHead(dutNode<T>*);int dutAddNodeToTail(dutNode<T>*);int dutAddNodeAfterData(dutNode<T>*, T);void dutRemoveFirst();void dutRemoveTail();void dutRemoveAll();void dutRemoveData(const T&);/*algotithm*/bool dutFindNodeByData(const T&) const; /*链表中是否存在给定值*/void dutNotRecursionReverseList(); /*非递归翻转单链表*/void dutRecursionReverseList(); /*递归翻转单链表*/void dutReversePrintList(); /*倒序打印单链表*/void dutSelectSortByData(); /*通过交换数据对单链表执行选择排序*/void dutInsertSortByPointer(); /*通过交换指针对单链表执行插入排序*/void dutQuickSortByPointer(); /*通过交换指针对单链表执行快速排序*/void dutMergeList(dutLinkList<T>&); /*合并单链表*/void dutNotRecursionMergeSortedList(dutLinkList<T>&); /*非递归合并有序单链表*/void dutRecursionMergeSortedList(dutLinkList<T>&); /*递归合并有序单链表*/void dutReverseOddAndEven(); /*翻转链表中奇数和偶数序号节点*/void dutSplitListMakeOddSeqBeforeEvenSeq(); /*分割单链表使得奇数序号位于偶数序号之前*/void dutSplitListMakeOddDataBeforeEvenData(); /*分割单链表使得奇数数据位于偶数数据之前*/void dutFindBackwardsK(int); /*输出倒数第K个节点*/void dutFindMiddleElement(); /*输出中间节点*/bool dutHasCircle(); /*链表中是否存在环*/bool dutListIntersect(dutLinkList<T>&); /*链表是否相交*/bool dutListHasCircleAndIntersect(dutLinkList<T>&); /*链表是否有环且相交*/void dutFindLoopPort(); /*输出链表环的入口*/void dutFindTheFirstIntersectNode(dutLinkList<T>&); /*输出相交链表的第一个相交节点*/
};
面试题目集锦--链表相关推荐
- BAT等公司高薪招聘Android开发面试题目集锦
整理过的50道面试题目 1.listView的优化方式 重用convertView viewHolder static class viewHolder 在列表里面有图片的情况下,监听滑动不加载图片 ...
- 面试题目集锦--二叉树
面试过程中,问的最多的题目大致是可以分为两类的,一类是链表,另一类就是二叉树了,树(普通数)和B(+-)树由于稍难些,问的不是很多. 往往在问到二叉树的时候,一般都是用递归的解 ...
- 转-python面试题目集锦(100道部分附答案)
Python爬虫人工智能教程:www.python88.cn 编程资源网:www.python66.cn 最近收集整理了100道python真实面试笔试题,并自己做了一些,希望能帮助大家,顺利早日找到 ...
- JAVA高频面试题目集锦
一.equals()和==,以及HashCode() =号 如果是值引用,比较值是否相等: 如果是对象引用,比较对象内存地址是否相同 equals()方法中,默认使用等号,如果说我们想要判断对象是否相 ...
- C/C++面试题目集锦
1.指针与引用的区别 从四个方面出发考虑不同点 (1)从定义出发,指针是一个变量,所存内容为指向变量在内存中的存储地址:而引用只是原变量的一个别名,和原变量占同一个存储单元. (2)初始化:指针可以初 ...
- 面试题目集锦 -- 排序算法
面试过程中,免不了会问一些比较基础的问题,而这些基础的问题肯定要说到排序上去. 我们知道,排序算法包含插入,选择,冒泡,快速,归并,堆排序等等,大多时候,我们在面试的时候,最常 ...
- JavaScript面试题目集锦
这里是我到处搜集的一些JS题目,看起来比较简单,但对基础知识的考察还是很到位的. 有一些还可能是面试题. 题目的分析肯定会有不足的地方 ,如果能指正出来的话就再好不过了.不断更新中-- 这里还有几个前 ...
- 软件测试笔试、面试题目集锦
一.单选题 1.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?(B) A.集成测试 B.单元测试 C.目的测试 D.确认测试 单元测试是对最小可测试单元的检查和验证 2.测试 ...
- 2020社招前端VUE面试题目
2020前端VUE面试题目集锦 年初由于疫情影响导致上家公司不景气,也由于自己一系列的考虑决定裸辞找工作,面试了十多家公司,最终进入了比较心仪的公司,我将这段时间面试所遇见的和VUE先关题目大概做个整 ...
最新文章
- Java并发:分布式应用限流 Redis + Lua 实践
- 64位浮点数_浮点数运算的机器误差分析
- Windows10 JDK9安装及配置环境变量与Eclipse安装
- maven deploy jar包到远程仓库400
- Spark性能优化指南——基础篇
- 服务动态选择域名问题
- python的数据结构包括那些_python算法与数据结构-什么是数据结构
- php中$stu_by,PHP基础案例二:计算学生年龄
- TensorFlow工作笔记001---Centos7.3下安装TensorFlow最新版本,基于python2.7.5的,没有编译TensorFlow的源码
- 基于情感词典、k-NN、Bayes、最大熵、SVM的情感分析比较及优缺点
- JSP版LCX:端口转发神器 KPortTran
- php unset函数 赋值 null来销毁变量
- 20190904_chip-seq/ ATAC-seq/DAP-seq 原理理解
- 2022-2028全球与中国数字化销售室软件市场现状及未来发展趋势
- flutter学习笔记--传递信息
- 2018年上海人工智能大会(SHAI2018)即将在上海举行
- 关于梯度消失,梯度爆炸的问题
- 一篇文章学会eggjs做后端服务及各种问题处理
- 《redis设计与实现》
- 手把手教你扩展个人微信号(1)
热门文章
- 二周第一次课(12月18日)
- Jfinal 2.1 集成 Guice,实现注解功能, 加入Service接口和实现类,直接晒代码
- iOS保存model数据(自定义Model 可以存放到本地)
- Android中如何使用ViewPager实现类似laucher左右拖动效果
- [转]Linux下pppoe配合Drcom插件上网方法介绍......
- 美团第一位前端工程师竟是转行程序员!关于他的10年技术生涯
- OO第一单元作业总结
- python中子类调用父类的初始化方法
- SSH分客户端openssh-client和openssh-server
- Zabbix 监控Mysql数据库及主从数据库