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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? qsort_of_link.txt

?? linux gcc編譯通過(guò)的鏈表的快速排序法
?? TXT
字號(hào):
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct node * link;
typedef struct node{
	int age;
	char name[20];
	link prev;
	link next;
}Tnode;
typedef struct headnode * linkhead;
typedef struct headnode{
	int node_num;
	link next;
	link end;
}Theadnode;
link NODE(int age, char *name, link prev, link next)							/* 創(chuàng)建節(jié)點(diǎn) */
{
	link t = (link)malloc(sizeof(*t));
	t->age = age;
	strcpy(t->name, name);
	t->prev = prev;
	t->next = next;

	return t;
}
linkhead init_link()												/* 鏈表初始化 */
{
	linkhead p = (linkhead)malloc(sizeof(Theadnode));
	p->node_num = 0;
	p->next = NULL;
	p->end = NULL;

	return p;
}
void destroy_link(linkhead h)										/* 銷(xiāo)毀鏈表 */
{
	link t, x;
	for(t = h->next; t; t=t->next, free(x))
		x = t;
	free(h);

	return;
}
void insert_node(linkhead h, int age, char *name)					/* 往表尾插入新節(jié)點(diǎn) */
{
	link t, after_t;
	for(t = h->next, after_t = t; after_t; t = after_t, after_t = after_t->next);
	if(t)
	{
		t->next = NODE(age, name, t, t->next);
		h->end = t->next;
	}
	else
	{
		h->next = NODE(age, name, t, t);
		h->end = h->next;
	}

	h->node_num++;

	return;
}
void remove_node(linkhead h, int age, char *name)					/* 刪除節(jié)點(diǎn) */
{
	link t, after_t;
	for(t = h->next, after_t = t; after_t; t = after_t, after_t = after_t->next)
		if(after_t->age == age && strcmp(after_t->name, name) == 0)
			break;
	if(after_t)
	{
		if(after_t->next == NULL)
			h->end = after_t->prev;
		if(t !=	after_t)
		{
			t->next = after_t->next;
			if(after_t->next)
				after_t->next->prev = t;
			free(after_t);
		}
		else
		{
			h->next = after_t->next;
			free(after_t);
		}
		h->node_num--;
	}
	else
		printf("sorry! can't find the item!\n");
}
void traverse(linkhead h)											/* 遍歷鏈表 */
{
	link t;
	for(t = h->next; t; t = t->next)
		printf("Name: %s, Age: %d\n", t->name, t->age);

	return;
}
linkhead cat_link(linkhead h1, linkhead h2)							/* 合并鏈表 */
{
	link t, after_t;
	for(t = h1->next, after_t = t; after_t; t = after_t, after_t = after_t->next);
	if(t)
	{
		t->next = h2->next;
		if(h2->next)
			h2->next->prev = t;
	}
	else
	{
		h1->next = h2->next;
	}
	if(h2->end)
		h1->end = h2->end;
	h1->node_num += h2->node_num;

	/* free(h2); */													/* 根據(jù)需要選擇釋放與否 */

	return h1;
}
void swap_node(linkhead *h, link *a, link *b)									/* 交換節(jié)點(diǎn) */
{
	printf("\nIn swap(%d, %d)\n", (*a)->age, (*b)->age);
	if(*a == *b) return;
	link tmp;
	if((*h)->next == *a)
		(*h)->next = *b;
	else if((*h)->next == *b)
		(*h)->next = *a;
	
	if((*h)->end == *a)
		(*h)->end = *b;
	else if((*h)->end == *b)
		(*h)->end = *a;

	if((*a)->prev != (*b) && (*a)->next != (*b) && (*b)->prev != (*a) && (*b)->next != (*a))
	{
		if((*a)->prev)
			(*a)->prev->next = (*b);
		if((*a)->next)
			(*a)->next->prev = (*b);

		if((*b)->prev)
			(*b)->prev->next = (*a);
		if((*b)->next)
			(*b)->next->prev = (*a);

		tmp = (*a)->prev;
		(*a)->prev = (*b)->prev;
		(*b)->prev = tmp;

		tmp = (*a)->next;
		(*a)->next = (*b)->next;
		(*b)->next = tmp;

		tmp = *a;
		*a = *b;
		*b = tmp;
	}
	else
	{
		if((*a)->next == (*b))
			(*a)->next = (*a);
		else if((*a)->next)
			(*a)->next->prev = (*b);
		if((*b)->next == (*a))
			(*b)->next = (*b);
		else if((*b)->next)
			(*b)->next->prev = (*a);
		if((*a)->prev == (*b))
			(*a)->prev = (*a);
		else if((*a)->prev)
			(*a)->prev->next = (*b);
		if((*b)->prev == (*a))
			(*b)->prev = (*b);
		else if((*b)->prev)
			(*b)->prev->next = (*a);
		
		tmp = (*a)->prev;
		(*a)->prev = (*b)->prev;
		(*b)->prev = tmp;

		tmp = (*a)->next;
		(*a)->next = (*b)->next;
		(*b)->next = tmp;

		tmp = *a;
		*a = *b;
		*b = tmp;
	}
}
void my_qsort_link(linkhead h, link l, link r)									/* 鏈表快排 */
{
	if(l == NULL || r == NULL) return;
	if(r->next == l || r == l) return;
	link i, j;
	j = l;
	for(i = l->next; i != r; i = i->next)
	{
		if(i->age < l->age)
		{
			j = j->next;
			swap_node(&h, &i, &j);
		}
	}
	if(r->age < l->age)
	{
		j = j->next;
		swap_node(&h, &r, &j);
	}
	if(j == r)
	{
		swap_node(&h, &j, &l);
		r = j;
	}
	else
		swap_node(&h, &j, &l);

	/* traverse(h); */
	my_qsort_link(h, l, j->prev);
	my_qsort_link(h, j->next, r);
}

int main()
{
	linkhead male_std = init_link();
	linkhead female_std = init_link();

	insert_node(male_std, 18, "Mikeal");
	insert_node(male_std, 23, "Tom");
	insert_node(male_std, 21, "Seven");
	insert_node(male_std, 16, "John");
	insert_node(male_std, 10, "David");
	insert_node(male_std, 26, "Smith");
	printf("Male students are:\n");
	traverse(male_std);

	insert_node(female_std, 19, "Joan");
	insert_node(female_std, 29, "Mary");
	insert_node(female_std, 36, "Alice");
	insert_node(female_std, 18, "Kitty");
	insert_node(female_std, 17, "Blanny");
	printf("Female students are:\n");
	traverse(female_std);


	printf("Now we delete the male student \"26 Smith\",then they are:\n");
	remove_node(male_std, 26, "Smith");
	traverse(male_std);

	printf("Now we sort them in age...\n");
	my_qsort_link(male_std, male_std->next, male_std->end);
	my_qsort_link(female_std, female_std->next,female_std->end);
	printf("After sorted!!!!!!\n");
	printf("Male students are:\n");
	traverse(male_std);
	printf("Female students are:\n");
	traverse(female_std);

	printf("Now we cat the female students to the male students.\n");
	male_std = cat_link(male_std, female_std);
	printf("Traverse them:\n");
	traverse(male_std);

	printf("Now we sort them in age...\n");
	my_qsort_link(male_std, male_std->next, male_std->end);
	printf("Traverse them:\n");
	traverse(male_std);

	printf("Now we add the male student \"26 Smith\",then they are:\n");
	insert_node(male_std, 26, "Smith");
	traverse(male_std);
	printf("the 1st student in link is Age %d, Name %s\n",  
									male_std->next->age, male_std->next->name);
	printf("the last student in link is Age %d, Name %s\n",
									male_std->end->age, male_std->end->name);
	printf("there are %d students in the link.\n", male_std->node_num);

	printf("現(xiàn)在生成一張新的全部學(xué)生的鏈表名叫all_std.\n");
	linkhead all_std = init_link();
	cat_link(all_std, male_std);
	printf("Traverse them in link all_std, there is %d students:\n", all_std->node_num);
	traverse(all_std);

	printf("Now we sort all_std in age...\n");
	my_qsort_link(all_std, all_std->next, all_std->end);
	printf("Traverse them:\n");
	traverse(all_std);
	printf("Now we sort male_std(now it's NULL) in age...\n");
	my_qsort_link(male_std, male_std->next, male_std->end);
	printf("Traverse them:\n");
	traverse(male_std);

	printf("Traverse the female_std:\n");
	traverse(female_std);

	destroy_link(all_std);
	destroy_link(male_std);
	destroy_link(female_std);

	printf("Traverse the female_std after destroyed:\n");
	traverse(female_std);

	return 0;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美国三级日本三级久久99| 五月天欧美精品| 在线成人免费视频| 国产乱国产乱300精品| 亚洲一区二区视频在线观看| 奇米综合一区二区三区精品视频| 欧美精品一区二区三区一线天视频| av电影在线观看一区| 久久精品久久精品| 亚洲综合精品久久| 欧美激情综合在线| 欧美成人性福生活免费看| 91福利国产精品| 国产91精品久久久久久久网曝门| 日本最新不卡在线| 亚洲一区二区三区四区五区黄| 日本一区二区成人在线| 日韩欧美国产电影| 69堂国产成人免费视频| 91免费观看国产| 高清不卡在线观看av| 精油按摩中文字幕久久| 日韩国产一二三区| 一区二区日韩av| 亚洲欧美日韩一区二区三区在线观看| 久久老女人爱爱| 欧美一级高清大全免费观看| 欧美三级乱人伦电影| 91色综合久久久久婷婷| 不卡的av电影| 成人听书哪个软件好| 国产成人免费视频| 国产在线播精品第三| 久久精品久久综合| 蜜臀av国产精品久久久久| 天天综合天天做天天综合| 亚洲成av人影院| 亚洲国产精品天堂| 天天综合色天天综合| 香蕉影视欧美成人| 婷婷国产在线综合| 日韩中文欧美在线| 偷窥少妇高潮呻吟av久久免费| 亚洲一区中文日韩| 午夜精品久久一牛影视| 午夜伊人狠狠久久| 日欧美一区二区| 美女www一区二区| 麻豆成人免费电影| 国产美女视频91| 高清免费成人av| 99久久久精品| 在线观看91视频| 9191国产精品| 欧美大尺度电影在线| 精品粉嫩超白一线天av| 国产欧美va欧美不卡在线| 亚洲国产激情av| 日韩美女久久久| 亚洲午夜激情av| 美女精品自拍一二三四| 国产在线视频一区二区| 丁香桃色午夜亚洲一区二区三区| 成人激情文学综合网| 91成人在线免费观看| 欧美日韩一区精品| 日韩精品一区在线| 国产精品久久久久久久久免费桃花| 国产精品成人网| 亚洲va国产va欧美va观看| 蜜桃传媒麻豆第一区在线观看| 国产一区二区三区精品欧美日韩一区二区三区 | 国产传媒一区在线| 99久久精品免费看国产免费软件| 欧美视频日韩视频在线观看| 欧美日韩高清影院| 久久综合五月天婷婷伊人| 中文字幕一区二区不卡| 香蕉加勒比综合久久| 国产最新精品精品你懂的| 99久久婷婷国产综合精品电影 | 91成人国产精品| 日韩一级二级三级精品视频| 中文字幕第一区第二区| 亚洲一二三四久久| 久草这里只有精品视频| 色综合色狠狠综合色| 欧美一区二区三区免费大片| 国产色91在线| 天天做天天摸天天爽国产一区| 国产69精品久久777的优势| 欧美日韩午夜在线| 中文字幕精品三区| 人禽交欧美网站| 一本大道久久a久久精二百| 精品国产电影一区二区| 亚洲一区在线播放| 国产99久久久精品| 在线不卡欧美精品一区二区三区| 国产精品欧美久久久久一区二区| 视频一区欧美精品| 91香蕉视频在线| 久久久久高清精品| 免费成人在线影院| 欧美性受xxxx黑人xyx性爽| 国产亚洲1区2区3区| 全部av―极品视觉盛宴亚洲| 色老头久久综合| 国产清纯白嫩初高生在线观看91| 日韩av一区二区三区| 色欧美乱欧美15图片| 国产日韩视频一区二区三区| 麻豆专区一区二区三区四区五区| 色琪琪一区二区三区亚洲区| 国产目拍亚洲精品99久久精品| 免费人成黄页网站在线一区二区| 色噜噜夜夜夜综合网| 中文字幕一区二区三区四区| 国产精品一区二区久久精品爱涩| 91精品国产一区二区| 亚洲午夜精品一区二区三区他趣| 成人国产电影网| 久久久久国产精品人| 精品在线一区二区| 日韩欧美一级精品久久| 亚洲成人777| 欧美在线一区二区| 亚洲日本护士毛茸茸| www.在线成人| 中文字幕av一区二区三区免费看| 国产乱色国产精品免费视频| 精品久久久久久久人人人人传媒| 日本美女视频一区二区| 555www色欧美视频| 婷婷六月综合亚洲| 6080国产精品一区二区| 五月激情综合色| 777色狠狠一区二区三区| 午夜婷婷国产麻豆精品| 欧美日韩在线播放三区四区| 香蕉成人啪国产精品视频综合网| 精品视频资源站| 午夜精品久久久久久| 欧美精品欧美精品系列| 欧美日韩成人综合天天影院| 亚洲电影一区二区| 欧美美女bb生活片| 日本欧美一区二区三区| 日韩免费高清视频| 狠狠久久亚洲欧美| 国产欧美一区二区三区沐欲| 成人小视频免费在线观看| 国产精品成人网| 欧美午夜不卡在线观看免费| 午夜精品一区二区三区免费视频| 欧美一区二区三区日韩| 激情图片小说一区| 国产精品私房写真福利视频| 久久久久久久久久久久久女国产乱| 国产a久久麻豆| 日韩精品一区二区三区视频| 久99久精品视频免费观看| 高清成人免费视频| 国产亚洲成aⅴ人片在线观看| 亚洲成人自拍偷拍| 欧美精品 日韩| 成年人网站91| 久久精品国产第一区二区三区| 亚洲男帅同性gay1069| 久久综合999| 欧美日韩一区二区三区视频| 不卡一区二区中文字幕| 秋霞av亚洲一区二区三| 亚洲精品一二三| 国产女人水真多18毛片18精品视频| 91精品国产综合久久久蜜臀粉嫩 | 欧美私人免费视频| 国产精品亚洲午夜一区二区三区| 午夜精品久久久久久久 | 五月天中文字幕一区二区| 国产精品视频免费看| 欧美mv日韩mv亚洲| 日本高清不卡aⅴ免费网站| 国产风韵犹存在线视精品| 蜜臀av性久久久久蜜臀av麻豆| 亚洲综合色婷婷| 亚洲视频你懂的| 国产精品色在线观看| 久久青草欧美一区二区三区| 欧美一区二区三区色| 欧美人与性动xxxx| 欧美综合色免费| 91网站视频在线观看| 粉嫩欧美一区二区三区高清影视 | 欧美日韩在线一区二区| 92国产精品观看| 不卡的av中国片| 成人一区二区三区在线观看| 激情综合网av| 九九视频精品免费|