Пример #1
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;
}
Пример #2
0
void main()
{
    linklist p;
    int i;

    p = CreateLinkList();
    Magician(p);

    printf("Çë°´ÈçÏÂ˳ÐòÅÅÁУº\n");
    for(i=0; i<CardNumber; i++)
    {
        printf("ºÚÌÒ%d  ", p->data);
        p = p->next;
    }

    DestroyList(&p);
}
Пример #3
0
int main()
{
    Node* pHead = (Node *)malloc(sizeof(Node));
    pHead->element = ' ';
    pHead->pNext = NULL;

    //create a link list
    CreateLinkList(pHead);

    //print a link list
    PrintLinkList(pHead);

    //reverse link list
    ReverseLinkList(pHead);
    //ReverseLinkList2(pHead);

    //print a link list
    PrintLinkList(pHead);

    //free memory all
    FreeLinkList(pHead);

    return 0;
}
Пример #4
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;
}