数据结构
文章平均质量分 67
wencheng2998
这个作者很懒,什么都没留下…
展开
-
单向链表的增、删、逆序实现
链表这个数据结构的作用举足轻重,本文主要实现的是单向链表的一些基本的操作。 具体的实现如下所示,有错误可以大胆地指出 ^_^ #include #include typedef struct student{ int data; struct student *next;}node;node* singlelist_create();node* singlelist_reverse(node* head);void singlelist_pr原创 2010-10-07 20:08:00 · 935 阅读 · 0 评论 -
单链表判环判交问题
【摘要】有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如果找到环的入口点?扩展:判断两个单链表是否相交,如果相交,给出相交的第一个点。<br />有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。<br />问题:<br />1、如何判断一个链表是不是这类链表?<br />2、如果链表为存在环,如果找到环的入口点?<br /转载 2010-10-12 15:03:00 · 2122 阅读 · 0 评论 -
快速排序
<br />快速排序时目前被认为是最好的一种内部排序方法。同时,快速排序被认为是,在所有同数量级(O(nlogn))的排序方法中,其平均性能最好。<br />其具体的C实现代码如下所示:<br />#include <stdio.h>int Partition(int *a,int low,int high){ int basekey = a[low]; while(low < high) { while(low < high && a[high] >= basekey)原创 2010-10-11 16:51:00 · 1441 阅读 · 0 评论 -
二分查找
<br />二分查找又称折半查找,它是一种效率较高的查找方法。<br />【二分查找要求】:<br /> 1.必须采用顺序存储结构 2.必须按关键字大小有序排列。<br />【优缺点】<br /> 折半查找法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 <br /> <br />具体的C++实现代码如下所示:<br />#include <iostream>using namespace st原创 2010-10-11 20:02:00 · 1522 阅读 · 0 评论 -
将两个递增的有序链表合并,不分配额外的空间
具体的实现过程如下:typedef struct List{ int num; struct List * next;}Node;Node * CombinationNode(Node* head1, Node* head2){ if(!head1) { return head2; } if(!head2) { return head1; } Node* p1 = head1->next; Node* p2 = head2->next;原创 2010-10-14 20:05:00 · 1603 阅读 · 1 评论 -
二叉树的遍历(先序、中序、后序)
<br />先创建一个函数CreateTree 来先序输入一个二叉树,然后通过PreOrderTree函数先序显示二叉树。至于中序和后序显示二叉树,只需将PreOrderTree中的对应的如下三行进行互换就行了。<br /> <br />1 printf("%c",T->data); <br />2 PreOrderTree(T->lchild); <br />3 PreOrderTree(T->rclild);<br /> <br />具体的实现代码如下所示:<br />#include <stdi原创 2010-10-15 20:37:00 · 947 阅读 · 0 评论