void LinkSelectSort ( sorlinktlist int p, q, prep, preq, h ; //这里的h相当与在顺序表上直接选择排序算法中的i, q相当与k, p相当于j //preq是q的前驱,perp是p的前驱 h = table.Arr[0].getLink ( );//取待排序表的第1个结点的指针 table.Arr[0].setlink( -1 ); //形成初始有序链表 while ( h != -1 ) {//当待排序表不空时 q = preq = prep = h; //把待排序表的第1个结点看成是当前最大的 p = table.Arr[h].getLink ( ); //设置初始被考察结点p while (p != -1) {//当被考察结点p存在时 if ( table.Arr[p].getKey ( ) >= table.Arr[q].getKey ( ) ) { q = p ; //置当前结点p为最大结点} preq = prep ; prep = p ;//p,q的前驱指针相应移动 p = table.Arr[p].getLink ( );//取下一个被考察结点p } // while (p != -1) //接下来\"摘下\"结点q,并插入有序表中 if ( h = =q ) {//如果最大结点就是待排序表的第1个结点 h = table.Arr[h].getLink ( );//摘下 table.Arr[q].setLink ( table.Arr[0].getLink()); table.Arr[0].setLink ( q );//插在有序表的第1个结点前} else { table.Arr[preq].setLink ( table.Arr[q].getLink());//摘下 table.Arr[q].setLink ( table.Arr[0].getLink()); table.Arr[0].setLink ( q ); );//插在有序表的第1个结点前} }// while ( h != -1 ) } 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- banwoyixia.com 版权所有 湘ICP备2023022004号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务