Ejemplo n.º 1
0
 void main()
 {
   DLTree t;
   int i;
   char s[MAX_KEY_LEN+1];
   KeysType k;
   Record *p;
   Record r[N]={{{"CAI"},1},{{"CAO"},2},{{"LI"},3},{{"LAN"},4},{{"CHA"},5},{{"CHANG"},6},
                {{"WEN"},7},{{"CHAO"},8},{{"YUN"},9},{{"YANG"},10},{{"LONG"},11},
                {{"WANG"},12},{{"ZHAO"},13},{{"LIU"},14},{{"WU"},15},{{"CHEN"},16}};
   /* 数据元素(以教科书式9–24为例) */
   InitDSTable(&t);
   for(i=0;i<N;i++)
   {
     r[i].key.num=strlen(r[i].key.ch);
     p=SearchDLTree(t,r[i].key);
     if(!p) /* t中不存在关键字为r[i].key的项 */
       InsertDSTable(&t,&r[i]);
   }
   printf("按关键字符串的顺序遍历双链键树:\n");
   TraverseDSTable(t,print);
   printf("\n请输入待查找记录的关键字符串: ");
   scanf("%s",s);
   k.num=strlen(s);
   strcpy(k.ch,s);
   p=SearchDLTree(t,k);
   if(p)
     print(*p);
   else
     printf("没找到");
   printf("\n");
   DestroyDSTable(&t);
 }
Ejemplo n.º 2
0
//访问数据data
int main(int argc,char *argv[])
{
	BSTree BST,ptr;
	KeyType key;
	int i;
	TElemType R[MAX]={{1012,"0304110512","胡菲菲","女",21,"生物工程"},
						{1006,"0304110506","李志昌","男",21,"微电子工程"},
						{1005,"0304110505","李经国","男",21,"工程设计"},
						{1010,"0304110510","刘京","女",21,"计算机"},
						{1003,"0304110503","单加猛","男",21,"通信工程"},
						{1004,"0304110504","韩少军","男",23,"软件工程"},
						{1011,"0304110511","朱紫婧","女",21,"信息安全"},
						{1008,"0304110508","刘高鑫","男",21,"物联网"},
						{1001,"0304110501","毕大成","男",21,"动画"},
						{1007,"0304110507","刘春功","男",21,"英语"},
						{1002,"0304110502","程学涵","男",21,"材料工程"},
						{1009,"0304110509","罗金伟","男",21,"机械工程"}};
	InitDSTable(BST);
	for(i=0;i<MAX;i++)
	{
		if(!(SearchDSTable(BST,R[i].key)))
			InsertDSTable(BST,R[i]);
	}

	while(1)
	{
		printf("输入搜索关键字,0结束:");
		scanf("%d%*c",&key);
		if(key==0)
			break;
		if((ptr=SearchDSTable(BST,key)))
			Visit(ptr->data);
		else
			printf("搜索失败!\n");
	}

	TraverseDSTable(BST,Visit);
	DestroyDSTable(BST);
	system("pause");
	return 0;
}
Ejemplo n.º 3
0
Archivo: main.cpp Proyecto: Og192/CPro
int main(void)
{
   DLTree t;
   int i,j=0; 
   KeyType k;
   Status flag;
   Record *p,r[N]; 
   FILE *f; 
   InitDSTable(t); 
   f=fopen("1.txt","r"); 
   do 
   { i=fscanf(f,"%s%d",&r[j].key.ch,&r[j].others.order); 
     if(i!=-1) 
     { r[j].key.num=strlen(r[j].key.ch); 
       flag=InsertDSTable(t,&r[j]); 
       if(flag==FALSE)
         printf("��t���Ѵ��ڹؼ���Ϊ%s�ļ�¼����(%s,%d)�޷����롣\n",
       r[j].key.ch,r[j].key.ch,r[j].others.order);
       j++; 
     }
   }while(!feof(f)&&j<N); 
   fclose(f); 
   printf("���ؼ��ַ�����˳�������t��\n");
   TraverseDSTable(t,Visit); 
   printf("\n����������Ҽ�¼�Ĺؼ��ַ�����");
   InputKey(k.ch); 
   k.num=strlen(k.ch); 
   p=SearchDLTree(t,k); 
   if(p) 
     Visit(p); 
   else 
     printf("δ�ҵ�"); 
   printf("\n");
   DestroyDSTable(t); 

	return 0;
}