Ejemplo n.º 1
0
void test4()
{
	LinkNode *ret = NULL;
	LinkList list;
	InitLinkList(&list);
	PushBack(&list, 5);
	PushBack(&list, 4);
	PushBack(&list, 3);
	PushBack(&list, 1);
	PushBack(&list, 2);
	PrintList(&list);
	Erase(&list, 3);
	PrintList(&list);
	//Remove(&list, 4);
	//PrintList(&list);
	/*ret=FindNode(&list, 3);*/
	//if (ret == NULL)
	//{
	//	printf("没有找到节点!\n");
	//}
	//else
	//{
	//	printf("%d \n", ret->data);
	//}
}
Ejemplo n.º 2
0
// Ö÷º¯Êý
int main(void)
{
	int pos;

	printf("TEST 1...\n");
	LinkList *plist = CreateLinkList( );				// 创建单链表
	for(int pos = 0; pos < LIST_SIZE; pos++)			// 循环向单链表中插入数据
	{
		InsertNode(plist, pos, pos + 1);
	}
	ShowList(plist);									// 插入结束后显示单链表的信息

	DeleteNode(plist, 0);								// 删除第一个元素
	ShowList(plist);
	DeleteNode(plist, 1);								// 删除第二个元素
	ShowList(plist);

	ClearLinkList(plist);								// 将单链表清空
	ShowList(plist);
	DestroyLinkList(plist);								// 将单链表销毁
	plist = NULL;

	printf("\n\nTEST 2...\n");
	LinkList list;
	InitLinkList(&list);								// 初始化单链表
	for(int pos = 0; pos < LIST_SIZE; pos++)			// 训话向单链表中插入数据
	{
		InsertNode(&list, pos, pos + 1);
	}
	ShowList(&list);									// 显示单链表
	ClearLinkList(&list);								// 清空单链表
//	FinitLinkList(&list);		// ERROR== list->m_head->m_next == NULL
	ShowList(&list);

	printf("\n\nTEST 3...\n");
	LinkListNode *prevNode = &list;			// 带头结点的单链表头指针是list->m_next
	LinkListNode *addNode = NULL;
	for(int pos = 0; pos < LIST_SIZE; pos++)
	{
		if((addNode = AddNode(&list, prevNode, pos + 1)) != NULL)
		{
            prevNode = addNode;
		}
	}
	ShowList(&list);
	while(IsEmptyLinkList(&list) != true)			// 循环删除单链表中的数据
	{
		DeleteCurrNode(&list, list.m_next);
	}
	ShowList(&list);									// 显示单链表

	return 	EXIT_SUCCESS;
}
Ejemplo n.º 3
0
int main(void)
{
	int n1;
	cin >> n1;
	int* a1 = new int[n1];
	for (int i = 0; i < n1; ++i)
		cin >> a1[i];
	Node* head1 = InitLinkList(a1, n1);
	
	int n2;
	cin >> n2;
	int* a2 = new int[n2];
	for (int i = 0; i < n2; ++i)
		cin >> a2[i];
	Node* head2 = InitLinkList(a2, n2);
	
	Node* result = AddList(head1, head2);
	PrintList(result);
	
	return 0;
}
Ejemplo n.º 4
0
void test3()
{
	LinkList list;
	LinkNode *ret = NULL;
	InitLinkList(&list);
	PushBack(&list, 5);
	PushBack(&list, 4);
	PushBack(&list, 3);
	PushBack(&list, 1);
	PushBack(&list, 2);
	PrintList(&list);
	BubbleSort(&list);
	PrintList(&list);
	DestoryLinkList(&list);
}
Ejemplo n.º 5
0
void test2()
{
	LinkList list;
	LinkNode *ret = NULL;
	InitLinkList(&list);
	PushBack(&list, 1);
	PushBack(&list, 2);
	PushBack(&list, 3);
	PushBack(&list, 4);
	PushBack(&list, 5);
	PrintList(&list);
	ret = FindNode(&list, 1);
	Insert(&list, 9, ret);
	PrintList(&list);
}
Ejemplo n.º 6
0
void test6()
{
	LinkList list;
	LinkNode *ret = NULL;
	InitLinkList(&list);
	PushBack(&list, 3);
	PushBack(&list, 5);
	PushBack(&list, 4);
	PushBack(&list, 2);
	PushBack(&list, 1);
	PrintList(&list);
	//ret = FindNode(&list, 2);
	//InsertFrontNode(ret, 0);           //3 5 4 0 2 1
	//PrintList(&list);
	//ret=FindMidNode(&list);
	DelKNode(&list, 5);
	PrintList(&list);
	DestoryLinkList(&list);
}
Ejemplo n.º 7
0
void test5()
{
	LinkNode *ret = NULL;
	LinkList list;
	InitLinkList(&list);
	PushBack(&list, 1);
	PushBack(&list, 2);
	PushBack(&list, 3);
	PushBack(&list, 4);
	PushBack(&list, 5);
	PushBack(&list, 6);
	PushBack(&list, 7);
	PushBack(&list, 8);
	PushBack(&list, 9);
	PushBack(&list, 10);
	ret = FindNode(&list, 1);
	ret = Yuesefu_huan(&list, ret, 2);
	printf("最后剩下的节点的数据是%d\n", ret->data);
}
Ejemplo n.º 8
0
Node* AddList(Node* head1, Node* head2)
{
	Node* result = NULL;
	
	vector<int> sum_array;
	
	int step = 0;
	
	while (head1 != NULL && head2 != NULL)
	{
		int sum = head1->data + head2->data + step;
		sum_array.push_back(sum % 10);
		step = sum / 10;
		head1 = head1->next;
		head2 = head2->next;
	}
	while (head1 != NULL)
	{
		int sum = head1->data + step;
		sum_array.push_back(sum % 10);
		step = step / 10;
		head1 = head1->next;
	}
	while (head2 != NULL)
	{
		int sum = head2->data + step;
		sum_array.push_back(sum % 10);
		step = sum / 10;
		head2 = head2->next;
	}
	
	if (step != 0)
		sum_array.push_back(step);
	
	int len = sum_array.size();
	
	int* a = new int[len];
	
	for (int i = 0; i < len; ++i)
		a[i] = sum_array[i];
	result = InitLinkList(a, len);
	return result;
}
Ejemplo n.º 9
0
void test1()
{
	LinkList list;
	InitLinkList(&list);
	PushBack(&list, 1);
	PushBack(&list, 2);
	PushBack(&list, 3);
	PushBack(&list, 4);
	PushBack(&list, 5);
	PopBack(&list);
	PopBack(&list);
	PopBack(&list);
	PrintList(&list);
	PushFront(&list, 6);
	PushFront(&list, 7);
	PushFront(&list, 8);
	PrintList(&list);
	PopFront(&list);
	PrintList(&list);
	DestoryLinkList(&list);
	PrintList(&list);
}
Ejemplo n.º 10
0
int main()
{
	int len,choose,i;
	 
	LinkList L;
	ElemType insert;

	InitLinkList(L);
	printf("--请输入要创建顺序表长度: ");
	scanf("%d",&len);
	printf("--请依次输入员工的 \n姓名  工号  职务\n");
	CreateLinkList(L,len);

	printf("--显示所有员工信息如下\n姓名  工号  职务\n");
	DisplayLinkList(L);

	while(true)
	{
		printf("\n\n***********************************\n--菜单--\n--· 1 插入员工信息\n--· 2 删除员工信息\n--· 3 显示所有员工信息\n--· 4 销毁所有员工数据\n***********************************\n请选择: ");
		scanf("%d",&choose);
		switch(choose){
		case 1:{
			printf("--请依次输入员工的\n姓名   工号   职务\n");
			scanf("%s %s %s",insert.name,insert.id,insert.job);//name id job
			printf(LinkListInsert_L(L,1,insert)==1?"--存入成功\n":"--存入失败 001\n");// 
			break;
		}
		case 2:{
			printf("--请输入需要删除员工的\n姓名   工号   职务\n");
			scanf("%s %s %s",insert.name,insert.id,insert.job);//name id job
			int index = locateelem(L,insert);
			if(index>0)//第一个元素位置为 1
			{
				printf("\n成功查询到员工信息--位置:%2d\n",index);
				i =	LinkListDelete_L(L,index);//删除第 i 个节点
				printf("%-16s\n",(i == 1?"\n删除成功\n":"\n删除失败 请检查位置脚标是否合理\n"));
			}else
			{
				printf("\n未查询到员工信息--位置:%2d\n",index);
			}
			break;
			   }
		case 3:{
			printf("\n员工信息如下\n******************************************************\n");
				DisplayLinkList(L);
				printf("\n******************************************************\n");
				break;
			   }
		case 4:{
				
			    ClearLinkList(L);
				printf("\n******************数据销毁 程序结束*******************\n");
				exit(OVERFLOW);
			   }
		default:printf("\n请输入正确的选项: ");

		}
 
			printf("#####按任意键继续..#####");
			getchar();
			getchar();
			printf("\n-------------------我是分割线---------------------------\n");
			printf("-------------------分割线我是---------------------------\n");
			printf("-------------------分割线是我---------------------------\n");
	}

	return 0;
}