数据结构与算法
文章平均质量分 70
dypwj0932
IT门徒。
展开
-
链表逆序
要求将一带链表头List head的单向链表逆序。 分析: 1). 若链表为空或只有一个元素,则直接返回; 2). 设置两个前后相邻的指针p,q. 将p所指向的节点作为q指向节点的后继; 3). 重复2),直到q为空 4). 调整链表头和链表尾 示例:以逆序A->B->C->D为例,图示如下原创 2014-03-12 21:51:57 · 756 阅读 · 0 评论 -
将一个链式链表L分成2个链表,一个存储L的奇数位置的元素,一个存储L偶数位置的元素
//将一个链式链表L分成2个链表,一个存储L的奇数位置的元素,一个存储L偶数位置的元素#include using namespace std; typedef struct node { int data; struct node *next; }L; void Initial_List(L * &h) { L *p;///用于插入 L *r;//尾节点 h=(L *)malloc原创 2014-04-01 22:53:45 · 1713 阅读 · 0 评论 -
链表-奇思妙想
基本函数 1,构造节点: //定义节点类型 struct Node { int value; Node*next; }; 2,分配节点 //之所以要分配节点原因是需要在分配函数中进行初始化,并且也利于判断是否分配成功。 Node* applyNode(); 3,在头部增加节点 //增加节点在头部(无头结点),返回值的原因是由于转载 2014-04-01 23:09:43 · 759 阅读 · 0 评论 -
快速排序
#include using namespace std; int DevidePos(int arr[], int start, int end) //以最后一个元素为主元素, { //把小于和大于这个元素的数分在这个数的两边 int x = arr[end]; int i = start - 1; int j; for (j = start; j < e原创 2014-06-17 19:57:22 · 547 阅读 · 0 评论