链表选择排序
来源:互联网 发布:oracle表数据恢复 编辑:程序博客网 时间:2024/06/16 02:25
链表选择排序
#include <iostream>#include <malloc.h>using namespace std;typedef struct LNode{ int index; struct LNode *next;}LNode,*LinkList;LinkList create(LinkList& L){ L = (LinkList)malloc(sizeof(LNode)); LNode *s,*r=L; int x; cin>>x; while(x!=111){ s = (LNode*)malloc(sizeof(LNode)); s->index = x; r->next = s; r = s; cin>>x; } r->next = NULL; return L;}int lenOfList(const LinkList& L){ LNode *p=L->next; int len=0; while(p){ len++; p = p->next; } return len;}LNode* GetItem(const LinkList& L,int i){ LNode* p=L->next; int j=1; if(i==0) return L; else if(i<1) return NULL; while(p&&j<i){ p = p->next; j++; } return p;}void sortList(LinkList& L,int len){ int i,j,min,temp; LNode *p=NULL,*q=NULL; for(i=1;i<=len;i++){ min = i; for(j=i+1;j<=len;j++) if(GetItem(L,j)->index < GetItem(L,min)->index) min = j; if(min!=i){ p = GetItem(L,i); q = GetItem(L,min); temp = p->index; p->index = q->index; q->index = temp; } }}void display(const LinkList& L){ LNode* p=L->next; while(p){ cout<<p->index<<" "; p = p->next; } cout<<endl;}int main(){ LinkList L; L = create(L); display(L); int len = lenOfList(L); //cout<<len<<endl; sortList(L,len); display(L); //cout<<L->index<<endl; return 0;}
0 0
- 链表排序--选择排序
- 链表选择排序
- 链表选择排序
- c 链表排序 - 选择排序
- 优化冒泡排序 & 链表选择排序
- 链表排序之选择排序
- 链表的选择排序
- 给链表选择排序
- 链表的选择排序
- 动态链表排序函数(选择法)
- 双向链表的选择排序算法
- 链表实现直接选择排序
- 选择排序的链表实现
- 双向链表的选择排序算法
- C++实现链表直接选择排序
- 链表问题---单链表的选择排序
- 双向循环链表的选择排序
- 链表排序(C语言)选择排序
- 基于QT和OpenCV的人脸检测识别系统(1)
- DirectX11 学习笔记9 - 动态顶点缓冲区 和 静态顶点缓冲区
- DLX舞蹈链(Dancing Links)——求解精确覆盖问题
- 链表排序
- 应用层面的均衡负载
- 链表选择排序
- Spring常用基础注解总结
- Python deque学习笔记01
- 每天一个linux命令(3):pwd命令
- Epics--PATH && "Connection refused"
- 结构体优先队列排序
- JAVA字符串格式化-String.format()的使用
- Registry之打开注册表编辑器时保持在根目录
- css基础3