
各类面试题目
wqOoops
多出来的自由……
展开
-
面试题—数据结构之单链表详述(基本篇)
单链表的结构是数据结构中最简单的,它的每一个节点只有一个指向后一个节点的指针。单链表节点的定义:typedef struct node{ int data; //节点内容 node *next; //下一个节点}node;单链表的创建://创建单链表node *原创 2011-07-24 18:52:46 · 2086 阅读 · 5 评论 -
面试题之约瑟夫问题-----循环链表简单详述
循环链表的运算与单链表的运算基本一致,所不同的有以下几点:(1)在建立一个循环链表时,必须使其最后一个节点的指针指向表头节点,而不是像单链表那样置为NULL。此种情况适用于在最后一个节点后插入一个新节点。(2)判断是否到表尾采用判断该节点链域的值是否是表头节点的方法,当链域值等于原创 2011-07-27 18:52:21 · 1876 阅读 · 3 评论 -
面试题---使用栈stack实现队列queue
在前面的小节里已经实现了queue,当时所采用的是front和rear两个指针分别指向队头和队尾。由于本题限制,不能使用这些指针。 如何只使用stack实现queue呢?由于stack是现进后出(FILO),而queue是先进先出的(FIFO)。也就是说st原创 2011-07-31 18:16:55 · 4514 阅读 · 1 评论 -
面试题----单链表实现栈
编程实现下面的栈顶操作原创 2011-07-31 17:41:31 · 5434 阅读 · 2 评论 -
面试题---判断链表是否相交
今天看了July的一篇经典文章《程序员编程艺术:第九章、闲话链表追赶问题》,因为现在一直复习数据结构有关链表的算法,顺便总结下,学习下July大牛的判断链表是否相交。出处:http://blog.youkuaiyun.com/v_JULY_v 。题目:给出两个单向链表的头指针,判断是否相原创 2011-08-01 18:42:55 · 3127 阅读 · 6 评论 -
简单理解的快速排序
快速排序就是C.R.A.Hoare 于 1962年提出一种划分交换排序,它采用了分治的策略,通常称其为分治法。分治法的基本意思是:将原问题分解为若干规模更小但结构与原问题相似的子问题,递归地解答这些子问题,然后将这些子问题的解组合为原问题的解。 快速排序的基原创 2011-08-12 18:16:43 · 2165 阅读 · 0 评论 -
typedef VS #define (const)用法
自己整理的资料,觉得还是蛮重要需要的东西。1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926程序原创 2011-08-12 18:27:27 · 1160 阅读 · 0 评论 -
求较小的值,不能用比较运算符if-else ?: while for内嵌汇编递归第三方函数
这题目是刚看到的,其实这种题目没有什么实际意义,只是考察下面试者的思维能力而已。我一开始也没有想到什么好的方法。就学习了网友们的解法,本人主要是做下笔记,记忆不能永存...言归正传吧! 下面是某网友的注释代码,非常感谢...学习了。#include原创 2011-08-19 23:46:45 · 1590 阅读 · 2 评论 -
求1+2+…+n,要求不能使用乘除法、for、while、if、else...
题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。其实会有很多种解法,但是下面给出了一个简单的代码-----巧用递归算法。#include #include #incl原创 2011-08-20 00:34:01 · 8818 阅读 · 11 评论 -
面试题之双向链表简单详述
双向链表其实是单链表的改进,对单链表进行操作时,有时要对某个节点的直接前驱进行操作,又必须从表头开始查找。由于单链表每个节点只有一个直接后继节点存储地址的练域,因此运用单链表无法办到,这样就引出了一个既有存储直接后继节点地址的练域,又有存储直接前驱节点地址的练域的上向链表节点结构原创 2011-07-28 19:15:19 · 5122 阅读 · 0 评论 -
面试题之队列简单详述
队列是一种数据结构,可以在队列的一端插入元素而在队列的另一端删除元素,它有以下特点:(1)允许删除的一端称为队头(front)。(2)允许插入到一端称为队尾(rear)。(3)当队列中没有元素时称为空队列。(4)队列亦称作先进先出(First In First O原创 2011-07-29 18:39:49 · 2024 阅读 · 0 评论 -
面试题—数据结构之单链表详述(基本篇2)
下面也是关于单链表的操作问题,实现单链表的逆置,关于这个问题,最容易想到的方法是遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向下一个元素,然后将当前节点元素的指针反转,利用已经存在存储的指针完后继续遍历。下面是实现代码://单链表的逆转node *MyReverse原创 2011-07-25 17:44:15 · 1319 阅读 · 0 评论 -
面试题—数据结构之单链表详述(基本篇3)
单链表的正向排序,就是插入数据时就按从小到大排序。代码有注释很容易理解的://单链表的正向排序node *InsertSort(void){ int data = 0; struct node *head = NULL; struct node *New, *Cur,原创 2011-07-25 23:34:06 · 1510 阅读 · 0 评论 -
字符串处理——字符串循环右移
1、字符串循环右移---解法:根据题意,编写的函数能把字符串循环右移n位。例如字符串“abcdefghi”,如果n=2,移位后是“hiabcdefg”。(1)先翻转前段“gfedcba hi”,(2)再翻转后段“gfedcba ih”(3)最后翻转整个“hi abcdefg”,得原创 2011-07-16 16:57:31 · 6897 阅读 · 0 评论 -
不能使用printf,将十进制数以二进制数和十六进制的形式输出...
不能使用printf系列库函数。代码不难,但是有两处没看懂!!!下面分享下代码:#include using namespace std;char * get2String(long num){ int i = 0; char * buffer = NULL; ch原创 2011-07-16 17:11:03 · 5430 阅读 · 9 评论 -
实现字符串替换
题意:输入3个字符串,然后再第一个字符串中找出所有的第二个字符串,第三个字符串替换掉所有的第二个字符串,最后输出新的字符串。本题不难的,就是使用strstr()库函数寻找到子串的位置,然后进行替换就可以了。c语言指针操作代码://17/16 17:25#include #in原创 2011-07-16 18:30:30 · 1878 阅读 · 1 评论 -
面试题—数据结构之单链表详述(基本篇4)---有序单链表的合并
有序单链表的合并。已知两个原创 2011-07-26 18:15:28 · 2153 阅读 · 3 评论 -
嵌入式面试--整数的自动转换
先看看下面的代码:void foo(void){ unsigned int a = 6; int b = -20; if(a + b > 6) puts(">6"); else puts("}嵌入式系统---原创 2011-07-20 17:53:21 · 1057 阅读 · 0 评论 -
两个C语言面试题---strlen()的实现 和 宏的应用
1.不用局部变量和全局变量实现strlen库函数 一般用有变量的实现方法是:(1)、不管效率的简单的实现 size_t strlen_a(const char * str) { size_t length = 0 ; while (*str++ )原创 2011-07-20 18:37:30 · 2069 阅读 · 2 评论 -
话说二叉树和二叉排序树是这样子的...学习吧~
二叉树是树形结构的一个重要类型。许多实际问题抽象出来的数据结构都是二叉树的形式,而且二叉树的存储结构及其算法都比较为简单,因此二叉树使用极为广泛。 二叉树是n(n>=0)个节点的有限集合,它可以是空集(n=0),也可以是由一个根节点及两棵互不相交、分别称作原创 2011-08-06 17:10:41 · 3096 阅读 · 13 评论