数据结构
文章平均质量分 72
passerbyyuan
这个作者很懒,什么都没留下…
展开
-
堆的创建
//脑部:数字0x12 34 56 78在内存中的表示形式为:1)大端模式:低地址 -----------------> 高地址0x12 | 0x34 | 0x56 | 0x782)小端模式:低地址 ------------------> 高地址0x78 | 0x56 | 0x34 | 0x12可见,大端模式和字符串的存储模式类似//原创 2016-06-24 20:15:10 · 414 阅读 · 0 评论 -
冒泡排序
基本排序算法/*排序:只讨论比较排序 只讨论内部排序 稳定性 数值相等的两个数,排序前后相对位置不变 没有一种排序是任何情况下都表现最好的*///冒泡排序:每次筛选出最大值//时间复杂度不变O(N2)void Bubble_Sort(ElementType a[],int N){ int P; int i; for(P = N-1;P >= 0;P原创 2016-07-13 12:49:39 · 271 阅读 · 0 评论 -
单链表的创建
尾差法创建链表typedef struct PolyNode{int data;struct PolyNode *next;}LNode,*LinkList;void CreateList(LinkList &L,int n)//此处采用C++中的引用{LinkList P;int i;L = (LinkList) malloc (sizeof(LNod原创 2016-06-19 12:04:30 · 484 阅读 · 0 评论 -
循环队列的创建
//和栈相反,队列(Queue)是一种先进先出(FIFO)的线性表循环队列顺序存储结构#define MAXQSIZE 100//最大队列长度typedef struct{QElemType Data[MAXQSIZE];int front;int rear;}SqQueue;void QueueInit(SqQueue &Q){Q.front = 0;原创 2016-06-19 16:42:28 · 1464 阅读 · 0 评论 -
二叉树的创建与遍历1
//n0表示叶子节点的个数,n2表示度为2的非叶子节点的个数,那么两者满足关系n0 = n2 + 1,//n1表示度为1的非叶子节点的个数 ,有总结点数n = n0 + n1 + n2/*二叉树的遍历:先序:根,左子树,右子树中序:左子树,根,右子树后序:左子树,右子树,根层次遍历:从上到下,从左到右*/typedef struct TreeNode *Bin原创 2016-06-20 14:19:24 · 475 阅读 · 0 评论 -
栈的创建和应用
/*栈的基本操作函数CreateStack()IsFull()Push()IsEmpty()Pop()栈的特点:先进后出(LIFO),表尾即栈顶,仅在表尾进行插入或删除的线性表*/顺序栈(即地址连续的存储单元)#define StackIncrease 20typedef struct{ElemType *base;ElemType *t原创 2016-06-19 13:47:59 · 484 阅读 · 0 评论 -
二叉树的创建与遍历2
//二叉树的非递归遍历 堆栈堆栈 中序遍历算法:1.当遇到一个结点,就把它压栈,并去遍历他的左子树;2.当左子树遍历结束后,从栈顶弹出这个结点并访问它;3.然后按其有指针再去中序遍历该节点的右子树。//用堆栈实现中序遍历的非递归程序void InOrderTrversal(BinTree BT){BinTree Ptr = BT;Stack S = Crea原创 2016-06-20 20:29:32 · 440 阅读 · 0 评论 -
二叉搜索树的操作
二叉查找树 二叉查找树(BinarySearch Tree,也叫二叉搜索树,或称二叉排序树Binary Sort Tree)或者是一棵空树,或者是具有下列性质的二叉树: 1.若它的左子树不为空,则左子树上所有结点的值均小于它的根结点的值; 2.若它的右子树不为空,则右子树上所有结点的值均大于它的根结点的值; 3.它的左、右子树也分别为二叉查找树。//二叉原创 2016-06-23 14:12:51 · 312 阅读 · 0 评论