40道数据结构编程题及代码合集

2011年7月至今,解题笔记系列已有39篇文章,本文做一个归纳及索引,方便网友阅读参考。其中的题目多出自两个博客,一个是JULY的,另一个是何海涛的。上面有题目,也有解题思路及代码。

      JULY的博客  http://blog.csdn.net/v_JULY_v/article/details/6057286

      何海涛的博客  http://zhedahht.blog.163.com/

      本人看的题目主要是这两个博客的,自己实现了一下,同时收集了一些其他的算法题。贴在博客上算是一个备份,方便以后查阅,同时也供各位网友参考。

      鉴于本人水平有限,思路及代码难免会有问题,还请读者见谅,同时也欢迎大家的批评与建议。

      主要按数据结构归纳

      (1)树。涉及树的题目多用递归解决。文章列表如下:

        解题笔记(4)——把二元查找树转变成排序的双向链表

   解题笔记(6)——在二元树中找出和为某一值的所有路径(树)

   解题笔记(7)——判断整数序列是不是二元查找树的后序遍历结果

   解题笔记(20)——判断二叉树是不是平衡的

   解题笔记(32)——输入一颗二元查找树,将该树转换为它的镜像

   解题笔记(33)——按层次遍历二元树

  (2)字符串。涉及的算法比较多,递归、动态规划等等。文章列表如下:

   解题笔记(8)——翻转句子中单词的顺序

   解题笔记(11)——字符串转换为整数

   解题笔记(14)——几个字符串的问题

            (1.找两个字符串的最长公共子串;2.在字符串中删除特定元素;3.左旋转字符串,其实也可以左旋数组;

          4.在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b;5.在字符串中找出连续最长的数字串)

   解题笔记(21)——字符串的排列组合问题

  (3)链表。这类题解法比较巧妙。文章列表如下:

   解题笔记(13)——几个链表的问题

         1.输入一个链表的头结点,反转该链表,并返回反转后链表的头结点;2.输入一个链表的头结点,从尾到头反过来输出每个结点的值;

          3.给定链表的头指针和一个结点指针,在O(1)时间删除该结点;4.两个单向链表,找出它们的第一个公共结点)

   解题笔记(30)——找含单链表的环入口点

   解题笔记(30)——找含单链表的环入口点(转网上某位高手的解法)

  (4)数组。多用动态规划解决,比如子数组的最大和、数对之差的最小值、最长单调递增子序列等。

   解题笔记(1)——子数组之和的最大值

   解题笔记(19)——数对之差的最小值

   解题笔记(24)——找出数组中两个只出现一次的数字(数组)

   解题笔记(25)——把数组排成最小的数

   解题笔记(27)——找数组中的特定元素

   解题笔记(31)——从数列1,2...n中随意取几个数,使其和等于m

   解题笔记(34)——求最长单调递减子序列

   解题笔记(35)——旋转数组中的最小元素

  (5)栈和队列。多用递归解决。文章类表如下:

   解题笔记(12)——用两个栈实现队列

   解题笔记(15)——几个栈和递归的问题

         1.跳台阶问题;2.栈的push、pop序列;3.二元树的深度;4.颠倒栈;5.设计包含min函数的栈)

  (6)随机。

   解题笔记(3)——随机数选择

  (7)数字及游戏。文章列表如下:

   解题笔记(10)——约瑟夫环问题

   解题笔记(16)——几个数字的问题

         (1.整数的二进制表示中1的个数;2.输入一个整数n,求从1nn个整数的十进制表示中1出现的次数;

          3.输入一个正数n,输出所有和为n连续正数序列;4.调整数组顺序使奇数位于偶数前面;5.寻找丑数

   解题笔记(17)——扑克牌的顺子

   解题笔记(18)——n个骰子的点数

   解题笔记(22)——n后问题

   解题笔记(26)——排队问题

   解题笔记(28)——寻找捣乱分子对

   解题笔记(29)——珠子问题

   解题笔记(36)——最大公约数问题

   解题笔记(37)——Catalan数计算及应用

         (1.n对括号有多少种匹配方式;2.矩阵链乘;3.一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列; 

                  4.n个节点构成的二叉树,共有多少种情形;5.在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数;

                  6.求一个凸多边形区域划分成三角形区域的方法数;7.有2n个人排成一行进入剧场)

   解题笔记(38)——大整数阶乘计算

   解题笔记(39)——过河问题

  (8)其他。

   解题笔记(2)——部分面试题解题思路

   解题笔记(5)——CPU占用率固定为50%

   解题笔记(9)——提取某日访问次数最多的那个IP

   解题笔记(9)——提取某日访问次数最多的那个IP(补充)

   以上是截止2011年10月7日的解题笔记。

你可能感兴趣的:(简单编程)