谁给我讲讲c语言链表排序算法

&>&对链表进行快速排序 选择排序
对链表进行快速排序 选择排序
上传大小:3KB
对链表进行相应操作
链表为双向链表 其中的操作有
选择排序 插入 删除链表 从链表中获取一个数等等
程序并没有测试周全
欢迎下载 若发现问题希望在我CSDN留言 以便及时更改
综合评分:0(0位用户评分)
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
综合评分:
积分/C币:3
综合评分:
积分/C币:3
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
对链表进行快速排序 选择排序
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
对链表进行快速排序 选择排序C++编程 急急急 对链表里面的数据从大到小排序_百度知道
C++编程 急急急 对链表里面的数据从大到小排序
我已经写好部分链表,里面有删除增加等功能,请添加一个对链表里面的数据从大到小排序的函数(加注释)并调用,注释。好心人,帮帮忙吧~
我有更好的答案
DATA *prev_j=NULL;
int count=0;next == pj){
// pj=pj-&next){
if(pi-&money & pj-&money){
if(count &/ 冒泡进行链表排序(由大到小)
for(pi=/ 实现链表的排序函数(这里是一个单向链表的排序实现)DATA* test(DATA* head){
DATA *prev_i=NULL;pi=pi-& 进行交换
DATA *p2 =
if(pi-&/ 保持pi,pj指向的链表对应下标位置不变
pi = p2; 指向pj指向的前一个元素
DATA *tmp = p1-&0){
prev_i-&next =
DATA *p1 =
pj = p1;/ 让头指针指向包含money值最小的元素
if(count == 0){
prev_j = 进行交换
DATA *tmp = p1; 如果count=0,就是链表头部与其他元素交换,否则就是内部元素之间进行交换
prev_j = NULL;next = p1;
p1-&next = p2-&
p2-&next =
/ 两个元素之间相邻的
p1-&next = p2-&
p2-&next = p1;
// 两个元素之间不相邻的
// 指向pi的前一个元素
&#47typedef struct Data{struct Data *}DATA;&#47
采纳率:76%
来自团队:
为您推荐:
其他类似问题
链表的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。本次讨论单向链表的排序。本质上讲,链表的排序与数组的排序在算法上有很多相通的地方,但是由于单向链表只能向后访问的特殊性,那些要求随机访问的排序算法在链表的排序上并不能施展手脚,所以只能采用相邻比较的排序方法:冒泡法,而且只能从前向后冒泡。链表的另一个问题是由于长度不是已知的,所以终止条件只能通过节点是否为空进行判断,而每次的循环次数也是如此。下面是两种排序方法,一种求出长度再排序,另一种直接进行排序。
另一种排序要求是倒序。当然,我们可以修改count1(),使其不分青红皂白总是交换相邻节点,只是复杂度较高。另一种优美简练的算法就是下面的reverse方法。代码中添加了注释,应该能看明白。核心思想就是化整为零,每次把即将要倒序的节点指向已倒序完成的节点序列,然后指针右移,直至结束。
// 计算链表长度
public int count() {
Node2&T& temp =
int count = 0;
while (temp != null) {
temp = temp.
// 用于两节点数据交换
private void swap(Node2&T& Node21, Node2&T& Node2) {
T temp = Node21.
Node21.key = Node2.
Node2.key =
// 由链表长度控制循环判断条件
public void sort1() {
int n = count();
if (n & 1) {// 至少两个节点才能排序;
for (int i = 0; i & i++) {
Node2&T& temp =
for (int j = 0; j & n - i - 1; j++) {// 相邻比较,前者小则互换值。(升序排列)
if (((Person) temp.key).compareTo((Person) temp.next.key) == 1)
swap(temp, temp.next);
temp = temp.// 指针右移
// 此处维护两个指针,index记录外层循环的起始位置,每次右移;temp和sort1()方法里的temp指针作用一致,表示内层循环。
public void sort2() {
Node2&T& index =
while (index != null) {
Node2&T& temp =
while (temp != null && temp.next != null) {
if (((Person) temp.key).compareTo((Person) temp.next.key) == -1)
swap(temp, temp.next);
temp = temp.
// 注意此处,由于链表只能向右访问,导致最值只能冒向右侧。我们的外层循环指针之所以也是右移,是因为下面对头节点和尾节点进行了互换,使得最 值相当于冒向左侧。
swap(index, temp);
index = index.
//此处为链表的反转操作,逻辑存在一定难度,但已是我见过的精炼优美的代码
public ListNode reverse(ListNode head) {
result =声明一个链表
while(head != null){
ListNode temp = head.(1)//因下一步要修改head.next,(1)将右移指针保存起来,(4)最后再给head;
head.next =(2)//(2)就是把下一个等待倒序的节点(head)指向已经倒序完成的result节点,这样又有一个节点完成了倒序;
result =(3)//(3)把结果重新指向最新的倒序节点序列;
head =(4)//指针右移;
阅读(...) 评论()C语言链表的排序_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C语言链表的排序
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 c 链表排序 的文章

 

随机推荐