iOS 算法面试题(字符串逆序输出、二叉树、归并排序)~demo

//联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄

一、字符串逆序输出

1、实现一个字符串“how are you”的逆序输出(编程语言不限)。如给定字符串为“hello world”,输出结果应当为“world hello”。

[cpp] view plain copy

intspliterFunc(char*p) {

charc[100][100];

inti =0;

intj =0;

while(*p !='\0') {

if(*p ==' ') {

i++;

j =0;

}else{

c[i][j] = *p;

j++;

}

p++;

}

for(intk = i; k >=0; k--) {

printf("%s", c[k]);

if(k >0) {

printf(" ");

}else{

printf("\n");

}

}return0;

}

二、二叉树

/**

二叉树的先序遍历为FBACDEGH,中序遍历为:ABDCEFGH,请写出这个二叉树的后序遍历结果。

ADECBHGF

先序+中序遍历还原二叉树:先序遍历是:ABDEGCFH中序遍历是:DBGEACHF

首先从先序得到第一个为A,就是二叉树的根,回到中序,可以将其分为三部分:

左子树的中序序列DBGE,根A,右子树的中序序列CHF

接着将左子树的序列回到先序可以得到B为根,这样回到左子树的中序再次将左子树分割为三部分:

左子树的左子树D,左子树的根B,左子树的右子树GE

同样地,可以得到右子树的根为C

类似地将右子树分割为根C,右子树的右子树HF,注意其左子树为空

如果只有一个就是叶子不用再进行了,刚才的GE和HF再次这样运作,就可以将二叉树还原了。

*/

三、归并排序

voidmerge(intsourceArr[],inttempArr[],intstartIndex,intmidIndex,intendIndex) {

inti = startIndex;

intj = midIndex +1;

intk = startIndex;

while(i != midIndex +1&& j != endIndex +1) {

if(sourceArr[i] >= sourceArr[j]) {

tempArr[k++] = sourceArr[j++];

}else{

tempArr[k++] = sourceArr[i++];

}

}

while(i != midIndex +1) {

tempArr[k++] = sourceArr[i++];

}

while(j != endIndex +1) {

tempArr[k++] = sourceArr[j++];

}

for(i = startIndex; i <= endIndex; i++) {

sourceArr[i] = tempArr[i];

}

}

voidsort(intsouceArr[],inttempArr[],intstartIndex,intendIndex) {

intmidIndex;

if(startIndex < endIndex) {

midIndex = (startIndex + endIndex) /2;

sort(souceArr, tempArr, startIndex, midIndex);

sort(souceArr, tempArr, midIndex +1, endIndex);

merge(souceArr, tempArr, startIndex, midIndex, endIndex);

}

}

intmain(intargc,constchar* argv[]) {

intnumArr[10] = {86,37,56,29,92,73,15,63,30,8};

inttempArr[10];

sort(numArr, tempArr,0,9);

for(inti =0; i <10; i++) {

printf("%d, ", numArr[i]);

}

printf("\n");

return0;

}

谢谢!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、 对以下一组数据进行降序排序(冒泡排序)。“24,80,35,8,9,54,76,45,5,63” int ...
    面条168阅读 692评论 0 3
  • //联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄 1、对以下一组数据进行降序排序(冒泡排序)。“24...
    石虎132阅读 934评论 0 21
  • 数据结构和算法--二叉树的实现 几种二叉树 1、二叉树 和普通的树相比,二叉树有如下特点: 每个结点最多只有两棵子...
    sunhaiyu阅读 6,545评论 0 14
  • 树的概述 树是一种非常常用的数据结构,树与前面介绍的线性表,栈,队列等线性结构不同,树是一种非线性结构 1.树的定...
    Jack921阅读 4,509评论 1 31
  • 编程中我们会遇到多少挫折?表放弃,沙漠尽头必是绿洲。 学习二叉树的意义 由于二叉树的知识更倾向于理论,所以我们在实...
    神经骚栋阅读 6,322评论 5 57