数据结构直接插入排序算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

姓名:余忠科学号:119074414

1.以单链表作为存储结构实现直接插入排序算法。

#include

#include

struct node

{

int num;

struct node *next;

};

struct node *head=NULL;

cre_list() //初始化结点

{

head = (struct node *)malloc(sizeof(struct node));

head->num=0;

head->next = NULL;

}

add_node(int num) //插入结点

{

struct node *ptr = (struct node *)malloc(sizeof(struct node));

ptr->num = num;

ptr->next = head->next;

head->next=ptr;

}

display_node() //遍历链表

{

struct node *p = head->next;

do

{

printf("%d\t",p->num);

p = p->next;

}while(p != NULL);

printf("\n");

}

select_insert()

{

int min=0;

int tmp=0;

struct node *p,*q,*M;

p=q=M=head;

while(p->next!=NULL)

{

M=q=p->next;

min=q->num;

while(q!=NULL)

{

if(q->num < min)

{

M=q;

min=q->num;

}

q=q->next;

}

if(p->next!=M)

{

tmp=p->next->num;

p->next->num=M->num;

M->num=tmp;

}

p=p->next;

}

}

int main()

{

int i;

int a[10]={23,41,77,12,98,25,6,97,55,38};

cre_list();

for(i=0;i<10;i++)

{

add_node(a[i]);

}

display_node();

select_insert();

display_node();

return 0;

}

相关文档
最新文档