数据结构学习
东流-beyond the label
这个作者很懒,什么都没留下…
展开
-
顺序表奇偶顺序调整,单链表原地倒置,删除单链表中所有值为x的结点----数据结构(C语言版)
/*请编写一个算法函数partion(sequence_list *L),尽可能快地将顺序表L中的所有奇数调整到表的左边,所有偶数调整到表的右边,并分析算法的时间复杂度。*//请将本函数补充完整,并进行测试/顺序表的定义:#define maxsize 100typedef int datetype;typedef struct{ datatype a[maxsize]; in...原创 2019-06-23 13:17:20 · 1453 阅读 · 0 评论 -
冒泡排序--递归实现
void bubbleSort(int a[],int n){ int temp; if(n) { bubbleSort(a,n-1);//递归最底层是a[0]和a[1]在比较,等同非递归内层for循环比较一遍 if(a[n] < a[n-1]) { temp = a[n]; ...原创 2019-06-23 13:27:44 · 4735 阅读 · 1 评论 -
树的建立和遍历
树的前序遍历顺序建立法(树的指针孩子表示法)/*数的定义*/#define m 3 //树的最大孩子个数typedef char datatype;typedef struct node{ datatype data; struct node* child[m];}node,*tree;tree root;tree createtree(){ int i;char ch;...原创 2019-06-23 13:55:29 · 846 阅读 · 0 评论 -
判断单链表是否单调有序(c语言)
int isOrder(List *head){ List *p = head; int flagl = 0,flagr = 0;//记录方向变化,尽快判断是否有序 int nDirection = 0; //记录比较方向 int nTimer = 0; //记录比较次数 if (head == NULL) return 1; //为...原创 2019-06-28 16:04:17 · 1499 阅读 · 0 评论 -
二叉树的相关操作(非递归前序遍历,中序遍历,判断是否有序,判断两棵二叉树是否等价)
二叉树的非递归前序遍历:先访问根节点,后访问左子树,后访问右子树访问过程需要回溯,用到栈此处seqstack为自定义栈typedef struct tree_node{ char data; struct tree_node* lchild; struct tree_node* rchild;}treenode;typedef treenode* bintree;typede...原创 2019-06-29 17:52:36 · 939 阅读 · 0 评论 -
二叉树(前序遍历下的最后一个结点地址,后序遍历下的第一个结点地址,中序遍历下的最后一个结点)
前序遍历下的最后一个结点地址:按照遍历顺序,根节点,左子树,右子树;所以最后一个节点优先考虑右子树bintree prelast(bintree t){ if(t->rchild) t = prelast(t->rchild); //考虑右子树 else if(t->lchild) t = prelast(t->lc...原创 2019-06-29 18:18:52 · 8172 阅读 · 2 评论