链表的排序操作
来源:互联网 发布:新开淘宝店如何引流 编辑:程序博客网 时间:2024/05/13 10:16
==========================
功能:输入一点(X,Y),按照X值
(由小到大)排序
返回:指向链表表头的指针
==========================
#include "stdio.h"#include "malloc.h"typedef struct Node {int Xdata;int Ydata;struct Node *pNext;}NODE, *PNODE;//创建链表PNODE CreatList();//链表排序PNODE sort(PNODE pHead);int main(){PNODE pHead = NULL;PNODE ptemp = NULL;//开始创建链表pHead = CreatList();//按照Xdata大小进行排序sort(pHead);//链表输出显示PNODE p = pHead->pNext;while(NULL != p){printf("%d,%d\n",p->Xdata,p->Ydata);p = p->pNext;} //链表内存释放p = pHead;while (p != NULL){ptemp = p;p = p->pNext;delete(ptemp);}pHead = NULL;return 1;}PNODE CreatList(){int data1;int data2; //分配不存放有效数据的头结点PNODE pHead = (PNODE)malloc(sizeof(NODE));PNODE pTail = pHead;pTail->pNext = NULL;while (scanf("%d,%d\n",&data1,&data2) != EOF){PNODE pNew = (PNODE)malloc(sizeof(NODE)); pNew->Xdata = data1;pNew->Ydata = data2;pTail->pNext = pNew; pNew->pNext=NULL;pTail = pNew;}return pHead;}PNODE sort(PNODE pHead){int Xtemp,Ytemp;PNODE p1 = NULL,p2 = NULL;p1 = pHead->pNext;while(p1){p2 = p1->pNext;while(p2){if (p1->Xdata > p2->Xdata) { Xtemp = p1->Xdata; Ytemp = p1->Ydata; p1->Xdata = p2->Xdata; p1->Ydata = p2->Ydata; p2->Xdata = Xtemp; p2->Ydata = Ytemp;}p2 = p2->pNext;}p1 = p1->pNext;}return pHead;}
- 链表的排序操作
- 链表的增删排序等操作
- 两种方法实现链表的节点操作排序
- 链表 操作3 双向链表的 插入排序法
- 排序的操作
- haskell排序的操作
- 归并排序对链表操作
- 链表操作:创建,插入,排序,反转
- 链表操作:创建,插入,排序,反转
- java 排序常见排序的操作
- js表格的排序操作
- 堆排序的一些操作
- 排序操作的执行计划
- 六 排序的有关操作
- 实验 排序的有关操作
- C++链表的创建、插入、删除、查找、合并、排序、修改等操作的实现
- 链表的java实现以及基本的增加,删除,排序操作
- 单链表的所有操作,检查是否有环,合并链表,逆置链表,排序链表......
- C语言的函数返回值所存放的寄存器
- VC++6.0操作excel2007文件封装类CExcelServer
- 基本类型之间的相互转换
- Java this、super的用法
- 04-zendframework目录结构的分析
- 链表的排序操作
- 线性代数导论5——转置-置换-向量空间R
- 因为工作
- 网络流Dinic算法详解及模板
- SOJ 1321. Robot
- URLEncoder
- 2012 google校园笔试编程题2.1
- 摄像头
- LeetCode - Populating Next Right Pointers in Each Node