亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? classify.c

?? C語言編程的一些例子的源碼,這些例子都很基本,可供初級使用.
?? C
字號:
#include <stdio.h>

#include <stdlib.h>

#include <string.h>

struct SUBLINK

{

	int index;
	
	struct SUBLINK *next;

}sublink;

struct NODE

{

	char feature[20];
	
	int upnnum;
	
	struct SUBLINK *upnode;
	
	int fullfill;
	
	int type;
	
	int state;
	
	int sonnum;
	
	struct SUBLINK *sonnode;

}node;

#define MAXNUM 1000

struct NODE *nodelink[MAXNUM];

int nodenum;

void initiate();

void quarry();

void modify();

int extend(struct NODE *ntx);

int showfault() ;

void store();

void main()

{

	int flag;
	
	initiate();
	
	for(;;)
	
	{
	
		printf("\n\t請選擇操作:\n\n\t1、查詢;\n\n\t2、添加新知識;\n\n\t3、退出程序.\n\n\t");
		
		scanf("%d",&flag);
		
		switch(flag)
		
		{
		
		case 1:
		
			quarry();
			
			break;
		
		case 2:
		
			modify();
			
			break;
		
		case 3:
		
			store();
		
		default:
		
			printf("\n輸入錯誤,請重新輸入\n");
		
		}
	
	}

}



void initiate()//初始化

{

	int i , j;
	
	char s[10];
	
	FILE *kf;
	
	struct NODE *newnode;
	
	struct SUBLINK *newlink , *oldlink;
	
	if((kf = fopen("knowledgestore.txt" , "r")) == NULL)
	
	{
	
		printf("Cannot create/open file");
		
		exit(1);
	
	}
	
	fscanf(kf , "%5d" , &nodenum);
	
	for(i=0 ; i < nodenum ; i++)
	
	{
	
		newnode = (struct NODE*)malloc (sizeof(node));
		
		if(newnode == NULL)
		
		{
		
			printf("\n內存不夠!\n");
			
			exit(0);
		
		}
		
		fscanf(kf , "%20s" , newnode->feature);
		
		fscanf(kf , "%5d" , &newnode->upnnum);
		
		for(j=0 ; j<newnode->upnnum ; j++)
		
		{
		
			newlink = (struct SUBLINK*) malloc (sizeof(sublink));
			
			if(newlink == NULL)
			
			{
			
				printf("\n內存不夠!\n");
				
				exit(0);
			
			}
			
			fscanf(kf , "%5d" , &newlink->index);
			
			if(j == 0)
			
				newnode->upnode = oldlink = newlink;
			
			newlink->next = NULL;
			
			oldlink->next = newlink;
			
			oldlink = newlink;
		
		}
		
		newnode->fullfill = 0;
		
		newnode->state = 0;
		
		fscanf(kf , "%5d" , &newnode->type);
		
		fscanf(kf , "%5d" , &newnode->sonnum);
		
		for(j=0 ; j < newnode->sonnum ; j++)
		
		{
		
			newlink = (struct SUBLINK*)malloc(sizeof(sublink));
			
			if(newlink == NULL)
			
			{
			
				printf("\n內存不夠!\n");
				
				exit(0);
			
			}
			
			fscanf(kf , "%5d" , &newlink->index);
			
			if(j == 0)
			
				newnode->sonnode = oldlink = newlink;
			
			newlink->next = NULL;
			
			oldlink->next = newlink;
			
			oldlink = newlink;
		
		}
		
		nodelink[i] = newnode;	
	
	}
	
	fscanf(kf , "%10s" , s);
	
	if(strcmp(s , "end") != 0)
	
	{
	
		printf("\n程序初始化失敗!");
		
		exit(0);
	
	}	

}



void quarry()

{

	struct NODE *ntx;
	
	char feature[100];
	
	int i , flag;
	
	for(;;)
	
	{
	
		flag = 0;
		
		printf("\n請輸入動物的特征:");
		
		scanf("%s" , feature);
		
		for(i = 0 ; i < nodenum ; i++)
		
		{
		
			ntx = nodelink[i];
			
			if(strstr(feature,ntx->feature) != NULL)
			
			{
			
				ntx->state = 1;
				
				flag = extend(ntx);				
			
			}
		
		}		
		
		if(flag >= 1)
		
		{
		
			for(i = 0 ; i < nodenum ; i++)
			
			{
			
				nodelink[i]->fullfill = 0;
				
				nodelink[i]->state = 0;				
			
			}
			
			break;
		
		}
		
		if(flag == 0)
		
			if(showfault() == 0)break;
	
	}

}

int extend(struct NODE *ntx)

{

	int i , index;
	
	int flag;
	
	struct NODE *nextone;
	
	struct SUBLINK *son;
	
	if(ntx->sonnum == 0)
	
	{
	
		printf("\n結果為%20s\n" , ntx->feature);
		
		return 1;
	
	}
	
	son = ntx->sonnode;
	
	flag = 0;
	
	for(i = 0 ; i < (ntx->sonnum) ; i++)
	
	{
	
		index = son->index;
		
		nextone = nodelink[index];
		
		if(nextone->type == 0)//或節點
		
		{
		
			if(nextone->state != 1)
			
			{
			
				nextone->state = 1;
				
				printf("\n表明具有%20s特征" , nextone->feature);
				
				flag += extend(nextone);
			
			}
		
		}
		
		else
		
		{
		
			nextone->fullfill++;
			
			if(nextone->fullfill == nextone->upnnum)
			
			{
			
				nextone->state = 1;
				
				printf("\n表明具有%20s特征" , nextone->feature);
				
				flag =+ extend(nextone);
			
			}
		
		}

		son = son->next;
	
	}
	
	return flag;

}



void modify()

{

	int i ;
	
	char choice , feature[100];
	
	struct NODE *ntx , *newnode;
	
	struct SUBLINK *endl , *newl;
	
	newnode = (struct NODE*)malloc(sizeof(node));
	
	if(newnode == NULL)
	
	{
	
		printf("\n內存不夠!\n");
		
		exit(0);
	
	}
	
	newnode->sonnum = 0;
	
	newnode->upnnum = 0;
	
	newnode->fullfill = 0;
	
	printf("\n請輸入新特征\n");
	
	scanf("%s",newnode->feature);
	
	printf("新特征類型:\n與節點(1),或節點(0)");
	
	scanf("%d" , &newnode->type);
	
	newnode->state = 0;
	
	newnode->fullfill = 0;
	
	for(;;)
	
	{
			
		printf("\n是否為葉節點?(Y/N)\n");
		
	    scanf("%s" , &choice);
		
		choice = toupper(choice);
		
		if(choice == 'N')
		
		{
		
			printf("\n請輸入新特征描述的對象\n");
			
			scanf("%s" , feature);
			
			for(i = 0 ; i < nodenum ; i++)
			
			{
			
				ntx = nodelink[i];
				
				if(strstr(feature,ntx->feature) != NULL)
				
				{
				
					newl = (struct SUBLINK*) malloc (sizeof(sublink));
					
					if(newl == NULL)
					
					{
					
						printf("\n內存不夠!\n");
						
						exit(0);
					
					}

					if(newnode->sonnum == 0)
					
						newnode->sonnode = endl = newl;
					
					newl->index = i;
					
					endl->next = newl;
					
					endl = newl;
					
					newl->next = NULL;
					
					newnode->sonnum++;
					
/////////////////////////////////將信息寫入子節點
					
					newl = (struct SUBLINK*) malloc (sizeof(sublink));

					if(newl == NULL)
					
					{
					
						printf("\n內存不夠!\n");
						
						exit(0);
					
					}

					if(ntx->upnnum == 0)
					
						ntx->upnode = endl = newl;
					
					newl->index = nodenum;
					
					newl->next = ntx->upnode;
					
					ntx->upnode = newl;
					
					ntx->upnnum++;
				
				}

			}
			
			break;
		
		}
		
		if(choice == 'Y')break;
	
	}
	
	for(;;)
	
	{
		
		printf("\n是否為頂點?(Y/N)\n");
		
		scanf("%s" , &choice);
		
		choice = toupper(choice);
		
		if(choice == 'N')
		
		{		
		
			printf("\n請輸入對新對象的描述\n");
			
			scanf("%s" , feature);
			
			for(i = 0 ; i < nodenum ; i++)
			
			{
			
				ntx = nodelink[i];
				
				if(strstr(feature , ntx->feature)!=NULL)
				
				{			
				
					newl = (struct SUBLINK*) malloc (sizeof(sublink));
					
					if(newl == NULL)
					
					{
					
						printf("\n內存不夠!\n");
						
						exit(0);
					
					}
					
					if(newnode->upnnum == 0)
					
						newnode->upnode = endl = newl;
					
					newl->index = i;
					
					endl->next = newl;
					
					endl = newl;
					
					newl->next = NULL;
					
					newnode->upnnum++;
		
///////////////////////////////將信息寫入父節點
					
					newl = (struct SUBLINK*) malloc (sizeof(sublink));
					
					if(newl == NULL)
					
					{
					
						printf("\n內存不夠!\n");
						
						exit(0);
					
					}
					
					if(ntx->sonnum == 0)
					
						ntx->sonnode = endl = newl;
					
					newl->index = nodenum;
					
					newl->next = ntx->sonnode;
					
					ntx->sonnode = newl;
					
					ntx->sonnum++;
				
				}

			}
		
			break;

		}

		
		if(choice == 'Y')break;
	
	}	
	
	nodelink[nodenum] = newnode;
	
	nodenum++;

}



void store()

{

	int i , j;	
	
	char s[10];
	
	FILE *kf;
	
	struct NODE *writenode;
	
	struct SUBLINK *newlink , *oldlink;
	
	if((kf = fopen("knowledgestore.txt" , "w")) == NULL)
	
	{
	
		printf("Cannot create/open file");
		
		exit(1);
	
	}

	fprintf(kf , "%5d" , nodenum);
	
	for(i = 0 ; i < nodenum ; i++)
	
	{
	
		writenode = nodelink[i];
		
		fprintf(kf , "%20s" , writenode->feature);
		
		fprintf(kf , "%5d" , writenode->upnnum);
		
		newlink = writenode->upnode;
		
		for(j = 0 ; j < writenode->upnnum ; j++)
		
		{
		
			fprintf(kf , "%5d" , newlink->index);
			
			oldlink = newlink;
			
			newlink = newlink->next;
			
			free(oldlink);
		
		}

		
		fprintf(kf , "%5d" , writenode->type);
		
		fprintf(kf , "%5d" , writenode->sonnum);
		
		newlink = writenode->sonnode;
		
		for(j = 0 ; j < writenode->sonnum ; j++)
		
		{
		
			fprintf(kf , "%5d" , newlink->index);
			
			oldlink = newlink;
			
			newlink = newlink->next;
			
			free(oldlink);
		
		}

		free(writenode);
	
	}

	strcpy(s , "end");
	
	fprintf(kf , "%10s" , s);
	
	fclose(kf);
	
	exit(0);

}



int showfault()

{

	char choice;
	
	for(;;)
	
	{
	
		printf("是否繼續?(Y/N)\n");
		
		scanf("%s" , &choice);
		
		while(choice == '10');
		
		choice = toupper(choice);
		
		if(choice == 'Y')return 1;
		
		if(choice == 'N')exit(0);
	
	}	

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩视频在线一区二区| 欧美日韩精品一区二区三区四区| 97国产一区二区| 91麻豆精品国产无毒不卡在线观看| 国产天堂亚洲国产碰碰| 亚洲成人tv网| 99精品视频免费在线观看| 91精品国产品国语在线不卡| 亚洲日本在线看| 国产精品污网站| 欧美电影免费观看高清完整版在 | 99国产精品一区| 久久久99精品久久| 色狠狠一区二区| 国产精品第一页第二页第三页| 亚洲精品久久7777| 欧美精品乱人伦久久久久久| 91在线视频网址| 国产精品资源站在线| 久久免费视频色| 欧美电影一区二区三区| 成人av影视在线观看| 国产女人18水真多18精品一级做 | 91久久免费观看| 日本vs亚洲vs韩国一区三区| 亚洲五月六月丁香激情| 99re热这里只有精品视频| 久久综合色一综合色88| 久久99精品国产.久久久久久| 欧美精品第1页| 亚洲123区在线观看| 欧美性猛交xxxxxxxx| 亚洲资源在线观看| 一本到三区不卡视频| 国产精品久久久久桃色tv| 国产激情一区二区三区| 久久久影视传媒| 国产精品亚洲第一区在线暖暖韩国| 日韩精品专区在线影院重磅| 午夜亚洲福利老司机| 欧美日本一道本在线视频| 亚洲一区在线看| 欧美日韩一区二区在线视频| 亚洲bt欧美bt精品777| 欧美剧情片在线观看| 全部av―极品视觉盛宴亚洲| 日韩欧美国产小视频| 国产美女一区二区三区| 国产香蕉久久精品综合网| 成人午夜免费av| 一区二区三区蜜桃| 日韩亚洲欧美一区| 国产精品99久久久久久似苏梦涵 | 中文久久乱码一区二区| 成人综合在线观看| 一区二区三区不卡在线观看| 欧美区一区二区三区| 精品一区二区久久| 亚洲视频一区二区在线| 精品视频一区二区三区免费| 麻豆极品一区二区三区| 国产日韩成人精品| 日本韩国一区二区三区视频| 人人精品人人爱| 中文字幕第一区综合| 欧美性猛交一区二区三区精品| 日韩avvvv在线播放| 国产欧美日韩另类一区| 欧美视频一区在线| 国产69精品久久777的优势| 亚洲国产精品欧美一二99| 亚洲精品在线免费观看视频| 91色婷婷久久久久合中文| 免费久久精品视频| 一区二区三区在线不卡| 久久久综合视频| 欧美日韩视频在线第一区| 国产东北露脸精品视频| 午夜不卡av在线| 亚洲欧洲成人精品av97| 欧美变态tickling挠脚心| 91在线视频观看| 国产一区激情在线| 日本伊人午夜精品| 有码一区二区三区| 欧美激情一区二区三区蜜桃视频| 精品国产人成亚洲区| 国产成人精品影视| 秋霞影院一区二区| 亚洲六月丁香色婷婷综合久久 | 欧美a一区二区| 欧美国产一区在线| 日韩欧美成人一区二区| 色综合久久久久综合99| 懂色av中文一区二区三区| 老司机精品视频在线| 午夜精品久久久久久| 亚洲欧美偷拍卡通变态| 国产精品美女久久久久aⅴ国产馆| 日韩一区二区视频| 欧美精品第一页| 欧美视频一区二区在线观看| 97精品国产97久久久久久久久久久久 | 日本欧美一区二区三区乱码 | 国产欧美一区二区三区鸳鸯浴| 欧美一区二区在线不卡| 欧美图区在线视频| 91亚洲精品久久久蜜桃| www.亚洲国产| 91丝袜美女网| jvid福利写真一区二区三区| 国产91色综合久久免费分享| 国产一区日韩二区欧美三区| 久久精品噜噜噜成人88aⅴ| 免费成人av在线| 日韩精品久久理论片| 天天综合天天综合色| 天堂资源在线中文精品| 亚洲电影一级片| 欧美午夜精品久久久| 免费成人你懂的| 国产精品女同一区二区三区| 欧美肥大bbwbbw高潮| 久久99国产精品免费| 岛国精品一区二区| 九九**精品视频免费播放| 亚洲蜜桃精久久久久久久| 中文字幕第一区| 中文一区在线播放| 日本一区二区在线不卡| 久久你懂得1024| 国产婷婷一区二区| 26uuu欧美日本| hitomi一区二区三区精品| 成人久久久精品乱码一区二区三区 | 欧美体内she精视频| 欧美精品v国产精品v日韩精品| 欧美午夜在线一二页| 日韩免费一区二区| 亚洲日本va午夜在线影院| 一区二区三区在线影院| 精品系列免费在线观看| 91丨九色丨黑人外教| 一区二区日韩电影| 麻豆免费看一区二区三区| 亚洲日本护士毛茸茸| 亚洲精品免费看| 六月丁香婷婷色狠狠久久| 久久国产精品露脸对白| 精品国产三级电影在线观看| 成人不卡免费av| 一区二区三区.www| 日韩免费高清av| 日本一区二区成人| 午夜电影久久久| 不卡一卡二卡三乱码免费网站| 欧美色老头old∨ideo| 欧美tickling挠脚心丨vk| 中文字幕色av一区二区三区| 青青草国产精品97视觉盛宴 | 亚洲国产精品久久人人爱| 久久99国产精品免费网站| 91在线免费视频观看| 国产精品灌醉下药二区| 亚洲综合另类小说| 成人免费黄色大片| 日韩久久久精品| 99热精品国产| 欧美亚洲国产怡红院影院| 精品一区二区久久| 在线观看亚洲一区| 国产精品久久久久影视| 久久69国产一区二区蜜臀| 色屁屁一区二区| 中文在线免费一区三区高中清不卡| 日韩激情一区二区| 欧美亚一区二区| 中文字幕中文字幕一区| 久久精品av麻豆的观看方式| 欧美亚洲综合另类| 亚洲日本在线a| 成人h动漫精品| 久久久亚洲国产美女国产盗摄| 午夜欧美2019年伦理| 在线观看免费视频综合| ...xxx性欧美| 不卡一区二区在线| 欧美激情综合五月色丁香 | 国产亚洲精久久久久久| 久久国产精品99久久人人澡| 69成人精品免费视频| 午夜欧美大尺度福利影院在线看| 白白色亚洲国产精品| 国产三级精品三级| 国产成人av自拍| 欧美激情艳妇裸体舞| 国产91精品露脸国语对白| 国产无人区一区二区三区| 黑人巨大精品欧美一区| 2017欧美狠狠色|