链表实现选择排序

it2026-01-04  8

C++链表实现选择排序代码如下:

#include<iostream> #include<stdio.h> using namespace std; int main() { struct node{ int data; struct node *link; };//定义节点数据类型 int nodeNum;//输入待建链表节点总数 printf("请输入所建链表节点总数:\n"); scanf("%d",&nodeNum); int data; struct node *head,*p,*q; printf("请输入%d个int类型数据:\n",nodeNum); scanf("%d",&data);//扫描头结点 head=new struct node; head->data=data; head->link=0; q=head; int i; for(i=1;i<nodeNum;i++){ scanf("%d",&data);//扫描后续节点 p=new struct node; p->data=data; p->link=0; q->link=p; q=q->link; } struct node *r; int t; for(p=head;p->link!=0;p=p->link){ q=p; for(r=p->link;r!=0;r=r->link) if(q->data>r->data) q=r; if(q!=p){ t=q->data; q->data=p->data; p->data=t; } }//选择排序算法 printf("排序结果为:\n"); p=head; while(p!=0){ printf("%d ",p->data);//输出 p=p->link; } while(head!=0){ p=head; head=head->link; delete p; }//释放节点 return 0; }
最新回复(0)