可以用对数组进行排序的方法对链表进行排序,但由于链表有单向访问的特点所以用归并排序比较合理。
ListNode *Merge(ListNode *pre1, ListNode *pre2){
ListNode *fir = pre1 -> next;
ListNode *sec = pre2 -> next;
ListNode *resu...
分类:
编程语言 时间:
2015-08-31 10:09:39
阅读次数:
197
归并排序改变链接
快速排序改变链接
快速排序改变节点值
所有源码和测试函数
对单向链表的排序有2种形式,只改变节点的值 和 只改变链接// 节点
struct ListNode {
int val;
ListNode* next;
ListNode(int v, ListNode* n = NULL) {
val = v;
next = n;...
分类:
编程语言 时间:
2015-08-29 17:08:32
阅读次数:
317
描述给链表的结点进行排序。比如给出 1->3->2->0->null ,排序后 0->1->2->3->null。 这里介绍链表的插入排序和归并排序。链表插入排序插入排序就是已经前面N?1N-1个结点有序的情况下,将第NN个结点分别跟前面的有序结点比较,使前NN个结点仍然有序。跟数组的插入排序有所不同的是,数组是从后面开始比较,由于链表只能从前到后,所以链表插入排序是从前面依次开始比较。最主要的思想...
分类:
编程语言 时间:
2015-08-27 00:33:05
阅读次数:
170
所实现的单链表的结构如下图所示:
循环单链表的实现,和上一篇文章单链表的实现大致相同点击打开链接,略有区别:
1:循环判断的条件不再是s == NULL或者s->next == NULL,而是他们是否等于头指针。2: 断开链表时的处理,尾节点的next不是NULL,而是指向头结点
具体细节参考上一篇文章
头文件:SCList.h
#ifndef SCLIST_H
#define...
分类:
编程语言 时间:
2015-08-21 21:34:32
阅读次数:
312
所实现的单链表的结构如下图所示:
头文件:SList.h
#include
#include
using namespace std;
typedef enum{FALSE,TRUE}Status;
template
class List;
template
class ListNode
{
friend class List; //友元类可以访问该类的成员
private...
分类:
编程语言 时间:
2015-08-21 11:21:47
阅读次数:
245
#include #include #define container_of(ptr, type, mem)(type *)((unsigned long)ptr -(unsigned long)&((type *)NULL)->mem) struct person { struct pers...
分类:
编程语言 时间:
2015-08-19 19:57:57
阅读次数:
156
C语言学生管理系统:
此程序综合了链表,排序等知识,可以说是一个综合练习。
# include
# include
# include
typedef struct Student
{
char name[20];
char sex;
int age;
int score;
char sid[20];
struct Student * pNext;
}ST, *...
分类:
编程语言 时间:
2015-08-04 21:03:44
阅读次数:
130
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
/*
* 单链表的插入排序, 插入排序是一种稳定排序
*/
class Solution7 {
public:
ListNode* insertionSortList(ListNod...
分类:
编程语言 时间:
2015-08-02 21:38:44
阅读次数:
169
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1-...
分类:
编程语言 时间:
2015-07-22 14:42:16
阅读次数:
118
#include
using namespace std;
//别问我为什么要写链表的冒泡排序。
struct Node
{
int data;
Node *next;
Node(int d = int()) :data(d), next(NULL){}
};
class List
{
public:
List(int a[], int n)...
分类:
编程语言 时间:
2015-07-16 16:50:22
阅读次数:
140