资源简介
在日常生活中,个人通信录是我们不可少的,不管是纸式的个人通信录 还是我们手机中的个人通信录,查寻是其最基本的操作,几乎所有的操作都是在查寻的基础上进行的,所以,查寻时间的快慢很大程度上决定了整个通信录的性能。所以,一个有着良好界面、查寻速快的通信录,是人们所追求的。
本课程设计应用折半查寻法[1] [5]的技术思想进行查寻,从本思想出发,可以有两种数据组织方式:一是应用链表进行组织数据,由于折半查寻法的特殊性,所要进行查寻的数据列必须是有序的数据列,这样要求对数据列进行排序。出于系统实时查寻的考虑,每次对通信录进行改变后都得进行重新排序,这样才能保证数据列是实时有序的。这样当操作量大时,
代码片段和文件信息
/**********************************************************************************
* 基于二叉排序树的个人通信录
*
*
*
*
*
* 文 件: 基于二叉排序树树的个人通信录.C
* 作 者: soon
* 部 门: 计算机07级04班
* 编写日期: 2009.9.10
* 模块版本:
* 修改记录:
* ================================================================================
* 版 本| 日 期 | 修改人 |
* ================================================================================
* | | |
* | | |
* | | |
* ================================================================================
*
*
*
**********************************************************************************/
#include
#include
#include
#include
FILE *input; /*定认读取文件指针*/
FILE *output; /*定义保存文件指针*/
/********************定义个人记录结构**********************/
typedef struct Node
{
char name[30]; /*用于保存姓名*/
char code[30]; /*用于保存学号*/
int age; /*用于保年龄*/
}NODE;
/************************定义二叉树结构体******************/
typedef struct Tree
{
NODE *student; /*个人通信记录*/
struct Tree *lchild;
struct Tree *rchild;
}TREE;
static int TREESIZE=sizeof(TREE); /*进行求二叉树所占的内存空间*/
static int NODESIZE=sizeof(NODE); /*进行求个人记录结构的内存空间*/
TREE *Create_Tree(void ); /*声明创建空二叉树的函数*/
void Insert_Information(TREE *rootNODE *node); /*声明进行插入函数*/
void Look_Through_Information(TREE *root); /*声明浏览函数*/
void Save_Information(TREE *root); /*声明保存函数*/
int Find_Information(TREE *rootchar *code); /*声明查寻函数*/
int Rework_Information(TREE *rootchar *code); /*声明修改函数*/
void Menu(void ); /*声明界面函数*/
TREE *Find_Father_Node(TREE *rootchar *code); /*声明查寻双亲结点的函数*/
void Delete_Information(TREE *rootchar *code); /*声明删除函数*/
void Free_EMS_memory(TREE *root); /*声明释放内存空间函数*/
/**********************主函数******************************/
void main(void )
{
TREE *root;
NODE *node;
TREE *temp;
char b[30];
int a;
printf(“*************************基于排序二叉树的个人通信录*****************************\n\n\n“);
root = Create_Tree();
input = fopen(“shuwen.txt““r“); /*打开文件*/
assert(input != NULL);
if(!feof(input)) /*文件不空进行读取一条记录*/
{
node = (NODE *)malloc(NODESIZE);
assert(node != NULL);
fscanf(input“%s %s %d“node->codenode->name&node->age);/*进行读取*/
temp=(TREE *)malloc(TREESIZE);
assert(temp !=
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 99 2009-09-09 11:52 基于二叉排序树的个人通信录\程序源代码\shuwen.txt
文件 16869 2009-10-18 09:24 基于二叉排序树的个人通信录\程序源代码\基于二叉排序树的个人通信录.cpp
文件 3643 2009-10-18 09:24 基于二叉排序树的个人通信录\程序源代码\基于二叉排序树的个人通信录.dsp
文件 33792 2009-10-18 09:24 基于二叉排序树的个人通信录\程序源代码\Debug\vc60.idb
文件 45056 2009-10-18 09:24 基于二叉排序树的个人通信录\程序源代码\Debug\vc60.pdb
文件 226008 2009-10-18 09:24 基于二叉排序树的个人通信录\程序源代码\Debug\基于二叉排序树的个人通信录.pch
文件 25778 2009-10-18 09:24 基于二叉排序树的个人通信录\程序源代码\Debug\基于二叉排序树的个人通信录.obj
文件 208028 2009-10-18 09:24 基于二叉排序树的个人通信录\程序源代码\Debug\基于二叉排序树的个人通信录.ilk
文件 200782 2009-10-18 09:24 基于二叉排序树的个人通信录\程序源代码\Debug\基于二叉排序树的个人通信录.exe
文件 402432 2009-10-18 09:24 基于二叉排序树的个人通信录\程序源代码\Debug\基于二叉排序树的个人通信录.pdb
文件 33792 2009-10-18 09:25 基于二叉排序树的个人通信录\程序源代码\基于二叉排序树的个人通信录.ncb
文件 1578 2009-10-18 09:24 基于二叉排序树的个人通信录\程序源代码\基于二叉排序树的个人通信录.plg
文件 48640 2009-10-18 09:25 基于二叉排序树的个人通信录\程序源代码\基于二叉排序树的个人通信录.opt
文件 577 2009-10-18 09:25 基于二叉排序树的个人通信录\程序源代码\基于二叉排序树的个人通信录.dsw
文件 1001505 2009-10-18 09:22 基于二叉排序树的个人通信录\设计报告\基于二叉排序树的个人通信录.pdf
目录 0 2009-10-18 09:24 基于二叉排序树的个人通信录\程序源代码\Debug
目录 0 2009-10-18 09:16 基于二叉排序树的个人通信录\程序源代码
目录 0 2009-10-18 09:16 基于二叉排序树的个人通信录\设计报告
目录 0 2009-10-18 09:15 基于二叉排序树的个人通信录
----------- --------- ---------- ----- ----
2248579 19
评论
共有 条评论