三九宝宝网宝宝教育教学论文

单链表排序问题C语言

02月22日 编辑 39baobao.com

[C语言冒泡法排序问题]#include"stdio.h" main() { int a[5],*p,i,t,j; for(i=0;i<5;i++) scanf("%d",&a[i]); printf("\n"); for(i=0;i<5;i++) //改成for(i=0;i<4;i++) { for(j=0;j<5;j++)//改成for(j=...+阅读

经典算法--单链表选择排序第一种:#include#includetypedef struct node{ int data; struct node *next; }*Linklist,Node; Linklist creat(int n) {Linklist head,r,p; int x,i; head=(Node*)malloc(sizeof(Node)); r=head; printf("输入数字:\n"); for(i=n;i>0;i--) {scanf("%d",&x); p=(Node*)malloc(sizeof(Node)); p->data=x; r->next=p; r=p;} r->next=NULL; return head; } void output(Linklist head) {Linklist p; p=head->next; do{ printf("%3d",p->data);p=p->next; }while(p); printf("\n"); } void paixu(Linklist head) {Linklist p,q,small;int temp; for(p=head->next;p->next!=NULL;p=p->next) {small=p; for(q=p->next;q;q=q->next) if(q->datadata) small=q; if(small!=p) {temp=p->data; p->data=small->data; small->data=temp;} } printf("输出排序后的数字:\n"); output(head); } void main() {Linklist head; int x,j,n; printf("输入数字的个数(n):\n"); scanf("%d",&n); head=creat(n); printf("输出数字:\n"); output(head); printf("已排序的数字:\n"); paixu(head); } 第二种:#include#includetypedef struct node{ int data; struct node *next; }*Linklist,Node; Linklist creat(int n) {Linklist head,r,p; int x,i; head=(Node*)malloc(sizeof(Node)); r=head; printf("输入数字:\n"); for(i=n;i>0;i--) {scanf("%d",&x); p=(Node*)malloc(sizeof(Node)); p->data=x; r->next=p; r=p;} r->next=NULL; return head; } Linklist selectsort(Node *g) { Node *p,*q,*t,*s,*h; h=(Node *)malloc(sizeof(Node)); h->next=g; p=h; while(p->next->next!=NULL) { for(s=p,q=p->next;q->next!=NULL;q=q->next) if(q->next->datanext->data) s=q; if(s!=q) { t=s->next; s->next=t->next; t->next=p->next; p->next=t; } p=p->next; } g=h->next; free(h); return g; } void output(Linklist head) {Linklist p; p=head->next; do{ printf("%3d",p->data);p=p->next; }while(p); printf("\n"); } void main() {Linklist head; int x,j,n; printf("输入数字的个数(n):\n"); scanf("%d",&n); head=creat(n); printf("输出数字:\n"); output(head); head=selectsort(head); printf("已经排序的数字:\n"); output(head); }

以下为关联文档:

C语言字母排序问题#include#include/*string包含gets,puts,strlen函数*/ void main() { char n[500];/*定义具有五百个字符的数组n,可以根据字符串的长度适当调整*/ int i,j,x,temp; printf("输入...

你好请问一下怎么用C语言编写单链表插入节点程序万分感谢!#include "sll_node.h" #include #define FALSE 0 #define TRUE 1 // insertNode2:把newValue的值插入到递增排序的链表中,正确返回TRUE,错误返回FALSE // nextp是指向当前节点的...

c语言数字排序问题展开全部 // 正好适合插入排序 有问题联系 #include #define ARR_SIZE 10 int main() { int i,j,arr[ARR_SIZE]; int temp; for (i=0;i { scanf("%d",&temp); if (i==0) { arr...

c语言函数排序问题错的地方很多。。改了下, #include<stdio.h> int sort(int num[5]); void main() { int numm[5],i,a; for (i=0;i<5;i++) scanf("%d",&numm[i]); sort(numm); //调用排序 for (i...

c语言排序问题改了黑体部分,LZ错在mixum得不到更新,不更新它一直就是那个数组中最小的值啊 #include<stdio.h> #define N 10 int min(int m,int n); int a[N]; void getstr(); void main()...

c语言指针排序问题首先说明,这不是地址交换,而是值交换 temp是个定义的临时变量,用来存放中间结果。比如: a 与 b要交换值 那么,定义一个临时变量c,先保存a的值c = a 然后,把b的值赋给a:a = b最后把a...

c语言课程设计双向链表排序#includetypedef struct Link/*双向链表结构体*/{ int data; struct Link *lift; struct Link *right;}linkx,*linky;linky Init();/*建立双向链表*/void PrLink(linky p);/*输...

急!求c语言单链表冒泡排序的详细流程图#include struct number { int num; struct number *next; }; void main() { struct number *head; struct number *p1,*p2,*p,*p3,*p4; int n=0,m,i,j; p1=p2=(struct numb...

如何用c语言实现单链表的逆置1、算法的核心就是reverse函数,其它的都是辅助建立链表和输出链表的。从数据结构的定义来看这是一个带头节点的链表。要弄的十分明白要耐心点画图看看。 2、思路:head是指向头...

推荐阅读
图文推荐