数据结构与算法
文章平均质量分 67
ljf913
这个作者很懒,什么都没留下…
展开
-
妙趣横生的算法实例1-1
下面是我写的答案:#include #define MaxSize 10int Sqlist[MaxSize];int len = 0;void show(int length){int i = 0;int tmp = length;while(tmp > 0){printf("%d ", Sqlist[i]);i++;t原创 2012-12-31 13:11:41 · 652 阅读 · 1 评论 -
剑指offer-->面试题7 用两个栈实现队列
下面是Queue.h#pragma once#include #include using namespace std;template class CQueue{public: CQueue(void); ~CQueue(void); void appendTail(const T &node); T deleteHead();private: stac原创 2013-02-19 15:54:31 · 526 阅读 · 0 评论 -
妙趣横生的算法实例2-2-->折半查找
源代码如下:#include int binSearch(int key[], int n, int k){ int low = 0, high = n - 1, mid; while(low <= high) { mid = (low + high) / 2; if(key[mid] == k) { return mid; }else if(key[mid]原创 2013-02-15 20:15:47 · 515 阅读 · 0 评论 -
剑指offer-->面试题6 重建二叉树
下面是源代码:#include struct BinaryTreeNode{ int m_nValue; BinaryTreeNode *m_pLeft; BinaryTreeNode *m_pRight;};BinaryTreeNode *ConstructCore(int *startPreorder, int *endPreorder, int *startInorde原创 2013-02-08 13:29:07 · 1212 阅读 · 0 评论 -
妙趣横生的算法实例1-7
下面是源代码:#include #include int visited[5] = {0, 0, 0, 0, 0};typedef struct ArcNode{ int adjVex; struct ArcNode *next;}ArcNode;typedef struct VNode{ int data; ArcNode *firstArc;}VNode;原创 2013-02-08 09:49:50 · 500 阅读 · 0 评论 -
妙趣横生的算法实例1-7
下面是源代码:#include #include int visited[5] = {0, 0, 0, 0, 0};typedef struct ArcNode{ int adjVex; struct ArcNode *next;}ArcNode;typedef struct VNode{ int data; ArcNode *firstArc;}VNode;原创 2013-02-06 19:17:42 · 1272 阅读 · 0 评论 -
剑指offer-->面试题5 从尾到头打印链表
#include #include typedef struct ListNode{ int m_nValue; ListNode *m_pNext;}ListNode;ListNode *createListNode(int value){ ListNode *node = new ListNode(); node->m_nValue = value; node->m_原创 2013-01-20 19:53:32 · 1534 阅读 · 0 评论 -
妙趣横生的算法实例1-6
我想这道题时,一直想不到该怎么样使从下一层返回上一层时,上一层数不变,因为我想在遍历里面定义一个变量,怎么也行不通,看了书上是又多传进来一个参数,这个问题就迎刃而解了。#include #include typedef struct biTNode{ char data; struct biTNode *lChild, *rChild;}biTNode, *biTree;vo原创 2013-01-16 21:01:13 · 448 阅读 · 0 评论 -
剑指offer-->面试题4 替换空格
我想到了从前往后移,不过时间复杂度是O(n^2),从后往前移,时间复杂度可以降到O(n)。下面是O(n)的代码:#include #define LENGTH 100void replaceSpace(char *str, int length){ int i = 0; int numberOfChar = 0; int numberOfSpace = 0; int inde原创 2013-01-13 19:23:19 · 1033 阅读 · 0 评论 -
妙趣横生的算法实例1-5
#include #include typedef struct qNode{ char data; struct qNode *next;}qNode, *queuePtr;typedef struct { queuePtr front; queuePtr rear;}linkQueue;void initQueue(linkQueue *q){ q->fron原创 2013-01-12 21:24:17 · 541 阅读 · 0 评论 -
剑指offer-->二维数组中的查找
这个答案不是我想出来的,而是看的书上的,然后我把答案默写出来了,不过改成c语言下可以正确运行的了,令我没想到的是c语言竟然没有bool类型,结果代码一直出错。这里面也用到了这样一个知识点:在C/C++中,当数组作为函数的参数进行传递时,数组就自动退化为同类型的指针。#include typedef int bool;#define true 1#define false 0bo原创 2013-01-09 21:15:26 · 695 阅读 · 0 评论 -
妙趣横生的算法实例1-4
#include #include #include #define STACK_INIT_SIZE 10#define STACK_INCREMENT_SIZE 10typedef char ElemType;typedef struct { ElemType *base; ElemType *top; int stackSize;}stack;void init原创 2013-01-06 21:15:31 · 595 阅读 · 0 评论 -
妙趣横生的算法实例1-3
#include #include typedef struct node{ int data; struct node *next;}LNode, *LinkList;void destroyLinkList(LinkList *list){ LinkList p, r; p = *list; while(p) { r = p->next; free(p);原创 2013-01-02 19:01:59 · 458 阅读 · 0 评论 -
妙趣横生的算法实例1-2
下面是我写的答案,感觉比书上写的答案还符合题意:#include #include #define MaxSize 10typedef struct {int *elem;int length;int listSize;}Sqlist;void initSqlist(Sqlist *L){L->elem = (int *)ma原创 2012-12-31 13:15:33 · 433 阅读 · 0 评论 -
题目:已知一个完全二叉树的结点数为770,问完全二叉树的叶子结点数为多少?
前一段参加招聘笔试,遇到了这道题,当时连完全二叉树的定义都不太记得了,虽然我答对了但是感觉费了好长时间,心想作为程序员这种题应该编程解决,不要人去算,这也是我最近的领悟,程序就是用来解决问题的,所以我又看了一下数据结构二叉树那一章,推导了一下,发现其实挺简单的。我们设度数为0,1,2的结点分别为n0, n1, n2, 总的结点数为 n。则有:n = n0 + n1 + n2; 另,根据原创 2013-03-24 21:43:26 · 3712 阅读 · 0 评论