⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clist.h

📁 我的数据结构作业<约瑟夫环问题求解>,可读性很好并附有文档.cjhacker
💻 H
字号:
/*******************************************************************
	Copyleft!
	FileName:    CList.h
	Author:      cjhacker 
	Version:     1.0
	Description: Circuital List ADT definition
	Function List:
		Status CList_Inital( CList &L, int listsize )
		LPElemtype CList_GetElem( LPElemtype curpos, int length )
		int CList_GetNumber( LPElemtype elem )
		int CList_GetPassword( LPElemtype elem )
		LPElemtype CList_GetPrevious( CList &L, LPElemtype elem )
		Status CList_DeElem( CList &L, LPElemtype elem )
********************************************************************/

#include "Elemtype.h"
#include <stdio.h>
#include <malloc.h>

typedef struct
{
	Elemtype *elem;
	int      listsize;
}CList;

Status CList_Inital( CList &L, int listsize )
{
	int i;
	LPElemtype p, q;
	for ( i = 1; i <= listsize; i++ )
	{
		p = ( LPElemtype )malloc( sizeof( Elemtype ) );
		if ( i == 1 )
		{
			L.elem = q = p;
		}
		printf( "Please input %dth password:", i );
		scanf( "%d", &( p->password ) );
		p->number = i;
		q->next = p;
		q = p;
	}
	L.listsize = listsize;
	p->next = L.elem;
	return OK;
}

LPElemtype CList_GetElem( LPElemtype curpos, int length )
{
	int i;
	for ( i = 1; i <= length; i++ )
	{
		curpos = curpos->next;
	}
	return curpos;
}

int CList_GetNumber( LPElemtype elem )
{
	return elem->number;
}

int CList_GetPassword( LPElemtype elem )
{
	return elem->password;
}

LPElemtype CList_GetPrevious( CList &L, LPElemtype elem )
{
	LPElemtype p = L.elem;
	while ( p->next != elem )
	{
		p = p->next;
	}
	return p;
}

Status CList_DeElem( CList &L, LPElemtype elem )
{
	CList_GetPrevious( L, elem )->next = elem->next;
	free( elem );
	L.listsize--;
	return OK;
}


	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -