前段时间一直在忙着找工作,在面试中也遇到了大量的算法题目,其中,问的比较多的是二叉树和链表之类的题目,在这里,我就把前段时间写的链表面试题贴出来,当然,由于题目很多,我只是在这里贴出它的类构造,不贴出实现的代码,需要的朋友可以去这里下载(免积分):

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>&);        /*输出相交链表的第一个相交节点*/
};

面试题目集锦--链表相关推荐

  1. BAT等公司高薪招聘Android开发面试题目集锦

    整理过的50道面试题目 1.listView的优化方式 重用convertView viewHolder static class viewHolder 在列表里面有图片的情况下,监听滑动不加载图片 ...

  2. 面试题目集锦--二叉树

          面试过程中,问的最多的题目大致是可以分为两类的,一类是链表,另一类就是二叉树了,树(普通数)和B(+-)树由于稍难些,问的不是很多.       往往在问到二叉树的时候,一般都是用递归的解 ...

  3. 转-python面试题目集锦(100道部分附答案)

    Python爬虫人工智能教程:www.python88.cn 编程资源网:www.python66.cn 最近收集整理了100道python真实面试笔试题,并自己做了一些,希望能帮助大家,顺利早日找到 ...

  4. JAVA高频面试题目集锦

    一.equals()和==,以及HashCode() =号 如果是值引用,比较值是否相等: 如果是对象引用,比较对象内存地址是否相同 equals()方法中,默认使用等号,如果说我们想要判断对象是否相 ...

  5. C/C++面试题目集锦

    1.指针与引用的区别 从四个方面出发考虑不同点 (1)从定义出发,指针是一个变量,所存内容为指向变量在内存中的存储地址:而引用只是原变量的一个别名,和原变量占同一个存储单元. (2)初始化:指针可以初 ...

  6. 面试题目集锦 -- 排序算法

          面试过程中,免不了会问一些比较基础的问题,而这些基础的问题肯定要说到排序上去.       我们知道,排序算法包含插入,选择,冒泡,快速,归并,堆排序等等,大多时候,我们在面试的时候,最常 ...

  7. JavaScript面试题目集锦

    这里是我到处搜集的一些JS题目,看起来比较简单,但对基础知识的考察还是很到位的. 有一些还可能是面试题. 题目的分析肯定会有不足的地方 ,如果能指正出来的话就再好不过了.不断更新中-- 这里还有几个前 ...

  8. 软件测试笔试、面试题目集锦

    一.单选题 1.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?(B)  A.集成测试 B.单元测试 C.目的测试 D.确认测试 单元测试是对最小可测试单元的检查和验证 2.测试 ...

  9. 2020社招前端VUE面试题目

    2020前端VUE面试题目集锦 年初由于疫情影响导致上家公司不景气,也由于自己一系列的考虑决定裸辞找工作,面试了十多家公司,最终进入了比较心仪的公司,我将这段时间面试所遇见的和VUE先关题目大概做个整 ...

最新文章

  1. Java并发:分布式应用限流 Redis + Lua 实践
  2. 64位浮点数_浮点数运算的机器误差分析
  3. Windows10 JDK9安装及配置环境变量与Eclipse安装
  4. maven deploy jar包到远程仓库400
  5. Spark性能优化指南——基础篇
  6. 服务动态选择域名问题
  7. python的数据结构包括那些_python算法与数据结构-什么是数据结构
  8. php中$stu_by,PHP基础案例二:计算学生年龄
  9. TensorFlow工作笔记001---Centos7.3下安装TensorFlow最新版本,基于python2.7.5的,没有编译TensorFlow的源码
  10. 基于情感词典、k-NN、Bayes、最大熵、SVM的情感分析比较及优缺点
  11. JSP版LCX:端口转发神器 KPortTran
  12. php unset函数 赋值 null来销毁变量
  13. 20190904_chip-seq/ ATAC-seq/DAP-seq 原理理解
  14. 2022-2028全球与中国数字化销售室软件市场现状及未来发展趋势
  15. flutter学习笔记--传递信息
  16. 2018年上海人工智能大会(SHAI2018)即将在上海举行
  17. 关于梯度消失,梯度爆炸的问题
  18. 一篇文章学会eggjs做后端服务及各种问题处理
  19. 《redis设计与实现》
  20. 手把手教你扩展个人微信号(1)

热门文章

  1. 二周第一次课(12月18日)
  2. Jfinal 2.1 集成 Guice,实现注解功能, 加入Service接口和实现类,直接晒代码
  3. iOS保存model数据(自定义Model 可以存放到本地)
  4. Android中如何使用ViewPager实现类似laucher左右拖动效果
  5. [转]Linux下pppoe配合Drcom插件上网方法介绍......
  6. 美团第一位前端工程师竟是转行程序员!关于他的10年技术生涯
  7. OO第一单元作业总结
  8. python中子类调用父类的初始化方法
  9. SSH分客户端openssh-client和openssh-server
  10. Zabbix 监控Mysql数据库及主从数据库