2017年2月12日

链表的几个操作:
返回单链表的长度 
int sizeList(Node *pHead)
{
	int size = 0;

	while(pHead != NULL)
	{
		size++;			//遍历链表size大小比链表的实际长度小1
		pHead = pHead->next;
	}
	printf("sizeList函数执行,链表长度 %d \n",size);
	return size;	//链表的实际长度
}

检查单链表是否为空,若为空则返回1,否则返回0 
int isEmptyList(Node *pHead)
{
	if(pHead == NULL)
	{
		printf("isEmptyList函数执行,链表为空\n");
		return 1;
	}
	printf("isEmptyList函数执行,链表非空\n");

	return 0;
}
返回单链表中第pos个结点中的元素,若pos超出范围,则停止程序运行 
elemType getElement(Node *pHead, int pos)
{
	int i=0;

	if(pos < 1)
	{
		printf("getElement函数执行,pos值非法\n");
		return 0;
	}
	if(pHead == NULL)
	{
		printf("getElement函数执行,链表为空\n");
		return 0;
		//exit(1);
	}
	while(pHead !=NULL)
	{
		++i;
		if(i == pos)
		{
			break;
		}
		pHead = pHead->next;	//移到下一结点
	}
	if(i < pos)					//链表长度不足则退出
	{
		printf("getElement函数执行,pos值超出链表长度\n");
		return 0;
	}

	return pHead->element;
}

从单链表中查找具有给定值x的第一个元素,若查找成功则返回该结点data域的存储地址,否则返回NULL 
elemType *getElemAddr(Node *pHead, elemType x)
{
	if(NULL == pHead)
	{
		printf("getElemAddr函数执行,链表为空\n");
		return NULL;
	}
	if(x < 0)
	{
		printf("getElemAddr函数执行,给定值X不合法\n");
		return NULL;
	}
	while((pHead->element != x) && (NULL != pHead->next))	//判断是否到链表末尾,以及是否存在所要找的元素
	{
		pHead = pHead->next;
	}
	if((pHead->element != x) && (pHead != NULL))
	{
		printf("getElemAddr函数执行,在链表中未找到x值\n");
		return NULL;
	}
	if(pHead->element == x)
	{
		printf("getElemAddr函数执行,元素 %d 的地址为 0x%x\n",x,&(pHead->element));
	}

	return &(pHead->element);//返回元素的地址
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
(1) 获取当前时间中的年、、时、分、秒,并以年、星期、时分秒的形式显示。计算2018年711是一年中的第几个星期。 ```java import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.temporal.WeekFields; import java.util.Locale; public class DateTimeExample { public static void main(String[] args) { // 获取当前时间 LocalDateTime now = LocalDateTime.now(); // 格式化输出当前时间 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MMdd E HH:mm:ss", Locale.CHINA); System.out.println("当前时间:" + formatter.format(now)); // 计算2018年711是一年中的第几个星期 LocalDate date = LocalDate.of(2018, 7, 11); WeekFields weekFields = WeekFields.of(Locale.getDefault()); int week = date.get(weekFields.weekOfYear()); System.out.println("2018年711是一年中的第" + week + "个星期"); } } ``` 输出结果: ``` 当前时间:2021年0622 星期二 14:21:47 2018年711是一年中的第28个星期 ``` (2) 计算并显示“2017年711”至“2021年612”之间的时间差值,以天为单位计算。 ```java import java.time.LocalDate; import java.time.Period; public class DateTimeExample { public static void main(String[] args) { LocalDate date1 = LocalDate.of(2017, 7, 11); LocalDate date2 = LocalDate.of(2021, 6, 12); Period period = Period.between(date1, date2); System.out.println("2017年711至2021年612之间的时间差值为" + period.getDays() + "天"); } } ``` 输出结果: ``` 2017年711至2021年612之间的时间差值为706天 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值