博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单链表的建立、排序和翻转
阅读量:4703 次
发布时间:2019-06-10

本文共 2390 字,大约阅读时间需要 7 分钟。

链表:

1、注意是否有带头结点。

2、单链表的建立:顺序建表(尾插法)、逆序建表(头插法)。

3、单链表的插入、删除操作需要寻找前驱结点。

单链表的建立、排序和翻转,都是针对有头结点的单链表。

#include 
using namespace std;typedef struct Node{ int data; Node * next;}Node,*List;//顺序建表:尾插法void CreateLinkList(List& L, int n){ // 建立空表 L = (List)malloc(sizeof(Node)); L->next = NULL; //空表 List p = L; //用p指向表尾 // 插入元素 for(int i=0; i
>x; List s = (List) malloc(sizeof(Node)); s->data = x; // 插入表尾 s->next = p->next; p->next = s; p = s; // 新的表尾 }}//逆序建表:头插法void CreateLinkList2(List& L, int n){ // 建立空表 L = (List) malloc(sizeof(Node)); L->next = NULL; // 空表 // 插入元素 for (int i=0; i
>x; List s = (List) malloc(sizeof(Node)); s->data = x; // 插入表头 s->next = L->next; L->next = s; }}void PrintLinkList(List L){ List p = L->next; while( p!=NULL ) { cout<
data<<" "; p = p->next; } cout<
next; while(p) { ++len; p = p->next; } return len;}void DestroyList(List & L){ List p = L; List q = NULL; while(p) { q = p->next; free(p); p = q; }}//采用插入法将单链表中的元素排序。void InsertionSort(List & L){ List h=L->next; // 原链表 L->next=NULL; // 新空表 List s=NULL,p=NULL; while(h) { // 从原链表中取下结点s s=h; h=h->next; // 在新表中查找插入位置 p=L; while (p->next && p->next->data<=s->data) p=p->next; // 在p之后插入s s->next=p->next; p->next=s; }}//采用选择法将单链表中的元素排序。void SelectionSort(List & L){ List p=L; List q=NULL,s=NULL,m=NULL; while (p->next) { // 选择最小(从p->next至表尾) q=p; // 最小元素的前驱q s=p; while(s->next) { if(s->next->data
next->data) q=s; s=s->next; } m=q->next; // 找到最小m // 最小元素m插入有序序列末尾(p之后) if (q!=p) { q->next=m->next; // 解下最小m m->next=p->next; // 插入p之后 p->next=m; } p=p->next; // L->next至p为有序序列 }}//单链表就地逆置void ReverseList(Node* h){ Node* p = h->next; // 原链表 h->next = NULL; // 新表(空表) while(p != NULL) { Node* q = p->next; // 保存下个结点q p->next = h->next; h->next = p; p = q; }}int main(){ List head = NULL; CreateLinkList(head,5); PrintLinkList(head); cout<<"Len: "<
<

 

 

转载于:https://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2622323.html

你可能感兴趣的文章
linux下nano中复制粘贴剪切的快捷键是什么
查看>>
js instanceof
查看>>
不错的博文地址
查看>>
javascript DOM知识脑图
查看>>
Mongodb 启动关闭脚本并设置开机自动启动Mongodb
查看>>
JVM----垃圾回收算法
查看>>
浅谈<持续集成、持续交付、持续部署>(二)
查看>>
代码性能分析-Dottrace跟踪代码执行时间
查看>>
UITabBarController简单介绍
查看>>
iOS 随机数(Fixed)
查看>>
如何解决跨域问题
查看>>
zepto和jquery的区别,zepto的不同使用8条小结
查看>>
moment.js笔记
查看>>
react-developer-tools
查看>>
k8s-Namespace(命名空间)
查看>>
LRU算法
查看>>
Linux 自定义总线类型
查看>>
开地址哈希表(Hash Table)的原理描述与冲突解决
查看>>
tomcat启动错误org.springframework.beans.factory.CannotLoadBeanClassException的解决
查看>>
在Ubuntu中安装配置java后运行java -version时提示二进制文件不能执行
查看>>