数据结构与算法
文章平均质量分 65
jake_wolf
这个作者很懒,什么都没留下…
展开
-
编程实现栈的入栈与出栈操作
#include #include using namespace std;typedef struct student{ int data; struct student * next; } node;typedef struct linkmyqueue{ node *below; node *top;} myqueue;node* create(){ node原创 2013-09-06 21:22:22 · 1645 阅读 · 0 评论 -
编程实现单链表的逆置
#include #include using namespace std;typedef struct student{ int data; struct student * next; } node;node* create(){ node *head, *p, *s; int x, cycle = 1; head = (node *)malloc(sizeof(no原创 2013-09-05 14:03:05 · 1172 阅读 · 0 评论 -
编程实现单链表和双链表的插入节点
编辑程序实现单链表的插入#include #include using namespace std;typedef struct student{ int data; struct student * next; } node;node* create(){ node *head, *p, *s; int x, cycle = 1; head = (node *)ma原创 2013-09-05 12:41:14 · 776 阅读 · 0 评论 -
编程求出单链表中倒数第m个元素,当m=0时,指链表最后一个元素
此题编程时注意m=0的特殊情况,以及对于m大于链表长度n错误的处理#include #include using namespace std;typedef struct student{ int data; struct student * next; } node;node* create(){ node *head, *p, *s; int x, cycle =原创 2013-09-05 15:36:31 · 934 阅读 · 0 评论 -
编程一次遍历搜索到中间节点,如果节点数为偶数,取中间两节点中前一节点
#include #include using namespace std;typedef struct student{ int data; struct student * next; } node;node* create(){ node *head, *p, *s; int x, cycle = 1; head = (node *)malloc(sizeof(no原创 2013-09-05 14:34:22 · 718 阅读 · 0 评论 -
编程实现单链表的排序
#include #include using namespace std;typedef struct student{ int data; struct student * next; } node;node* create(){ node *head, *p, *s; int x, cycle = 1; head = (node *)malloc(sizeof(no原创 2013-09-05 13:37:29 · 733 阅读 · 0 评论 -
编程用两个栈实现一个队列
此题用到了stack的常用成员。stack常用成员包括:入栈push()(在栈顶插入元素)出栈pop()(删除栈顶元素,但不返回值)top()(获取栈顶元素,,但不删除栈顶元素,返回栈顶元素的引用)empty()(判断栈是否为空)size()(获取栈中元素个数)程序代码如下:#include#includeusing namespace std;temp原创 2013-09-07 10:35:48 · 673 阅读 · 0 评论 -
编程实现二叉树的建立,前序遍历,中序遍历和后续遍历
前序遍历:1.访问根节点,2.前序遍历左子树,3.前序遍历右子树。中序遍历:1.中序遍历左子树,2.访问根节点,3.中序遍历右子树。后序遍历:1.后序遍历左子树,2.后序遍历右子树。3.访问根节点。c/c++程序如下:#include#include using namespace std;typedef struct TreeNode{ char data; stru原创 2013-09-07 21:51:55 · 1713 阅读 · 1 评论 -
编程比较两棵二叉树是否相等
#includeusing namespace std;typedef struct TreeNode{ char data; struct TreeNode *left; struct TreeNode *right;} node;node *createTreePreOrder(){ char ch; node *root = NULL; fflush(stdin原创 2013-09-07 22:55:25 · 983 阅读 · 0 评论 -
编程实现单链表和双链表删除节点
#include #include using namespace std;typedef struct student{ int data; struct student * next; } node;node* create(){ node *head, *p, *s; int x, cycle = 1; head = (node *)malloc(sizeof(no原创 2013-09-05 11:46:36 · 962 阅读 · 0 评论 -
编程实现约瑟夫环问题
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。C++程序如下:#includeusing namespace std;typedef struct student{ int data; str原创 2013-09-05 21:09:21 · 1000 阅读 · 0 评论 -
编程实现队列入队出队操作
#include #include using namespace std;typedef struct student{ int data; struct student * next; } node;typedef struct linkmyqueue{node *first;node *rear;} myqueue;node* create(){ node *原创 2013-09-05 22:29:02 · 1113 阅读 · 0 评论 -
双向链表的建立/测长/打印
与单链表相比,每个单元加上前向指针#include #include using namespace std;typedef struct student{ int data; struct student * next; struct student * pre;} node;node* create(){ node *head, *p, *s; int x, cy原创 2013-09-05 16:00:43 · 728 阅读 · 0 评论