算法和数据结构
heaven619
这个作者很懒,什么都没留下…
展开
-
选择,冒泡,快速排序
排序算法是算法中比较基础的,在这里先对三种最简单的排序算法做个总结。 一、选择排序 大致思路为:依次选择无序区的最小值和无序区的第一个值交换。 代码:void exchange(int *a,int *b){ int temp; temp=*a; *a=*b; *b=temp; return;}void selection_sort(int a[]原创 2015-10-23 20:41:31 · 326 阅读 · 0 评论 -
怎样判断链表中有环
今天老师提了个小问题,问怎样判断一个单链表中有环,由于自己数据结构和算法不是太精通,当时愣了一下,回来又找了思路,给出答案。 大致思路:采取追赶的方式,给出两个指针,开始都指向链表的头部,开始遍历,一个一次前进一步,另一个一次前进两步,如果相遇则证明有环。 代码:int has_loop(struct node *L){ struct node *slow,*fast; slo原创 2015-10-23 21:14:06 · 307 阅读 · 0 评论 -
单链表基本操作
继续刚才的博客,现在讲一下单链表的一些基本操作,这里统一都用带头结点的单链表。 一、求长度int getLength_LinkList(LinkList L){ LinkList p=L->next; int n=0; while(p) { n++; p=p->next; } return n;}二、查找 1、原创 2015-12-18 15:16:35 · 586 阅读 · 0 评论 -
单链表操作——创建
最近在重温数据结构,先从单链表开始,首先系统讲一下单链表的初始化和创建。 一、初始化链表 定义一个结构体表示链表中的每一个结点:typedef struct node{ ElemType data; struct node *next;}*LinkList,LNode;初始化操作:int init_LinkList(LinkList *L){ *L=(LinkLi原创 2015-12-17 15:46:27 · 526 阅读 · 0 评论