单链表实现冒泡排序算法(C实现)
来源:互联网 发布:excel表格不能合计数据 编辑:程序博客网 时间:2024/04/26 07:20
本实现主要采用交换指针的方法,其中附加有单链表及其相关的实现
#include <stdio.h>struct Node;typedef struct Node *PtrToNode;typedef PtrToNode List;typedef PtrToNode Position;typedef int ElementType;struct Node{ElementType Element;Position Next;};List initList(){List L = (List)malloc(sizeof(struct Node));L->Next = NULL; return L;}void insertElement(List L){int element;while(scanf("%d", &element)){Position tmp = (Position)malloc(sizeof(struct Node));tmp->Element = element;tmp->Next = L->Next;L->Next = tmp;}}void printList(List L){Position P = L->Next;printf("L->");while(P != NULL){printf("%d - >", P->Element);P = P->Next;}printf("NULL\n");}int get_length(List L){int i = 0;Position P = L->Next;while(P != NULL){i++;P = P->Next;}return i;}void BubblePoint(List L){Position pre;Position cur;Position next;int i, j;i = get_length(L); printf("length = %d\n", i);while(i != 1){pre = L; cur = L->Next; next = cur->Next; j = i;i--;while(j != 1){j--;if(cur->Element > next->Element){cur->Next = next->Next;pre->Next = next;next->Next = cur;pre = next;next = cur->Next;}else{pre = cur;cur = next;next = next->Next;}}}}int main(int argc, char **argv){List L;L = initList(L);insertElement(L); printList(L);BubblePoint(L);printList(L);}
执行结果如下:
- 排序算法(C实现)------ 冒泡排序
- 单链表实现冒泡排序算法(C实现)
- 冒泡排序算法(C & Java 实现)
- 冒泡排序算法(C语言实现)
- 排序算法C++&&Python实现---冒泡排序
- 单链表实现冒泡排序算法
- 冒泡排序算法的c语言实现
- 冒泡排序算法的C/C++ 实现
- 冒泡排序算法思想、C语言实现
- 冒泡排序算法(C语言实现)
- 冒泡排序算法C语言实现
- 【算法】冒泡排序C语言实现
- 冒泡排序算法C语言实现
- C语言实现冒泡排序算法(升序)
- C语言简单实现冒泡排序算法
- 冒泡排序(C实现)
- 冒泡排序(C实现)
- 改进的冒泡排序算法实现 (C#)
- 简单Flex企业展示网站
- 查看android.jar中的xml文件
- 在Oracle中添加用户 赋权 修改密码 解锁
- java并发编程实践笔记
- js获取系统时间
- 单链表实现冒泡排序算法(C实现)
- STL 入门学习笔记二
- cdev结构体及其相关函数 【转】
- ASP.NET 2.0 中跨网页提交的三种方法
- 安装 Oracle10.2出现“all_no_orcl”错误的解决方案
- oracle导入导出
- 详解Linux开机自动启动SVN原理
- 两个listBox
- Oracle表空间详解