z


私信TA

用户名:azazb

访问量:3862

签 名:

等  级
排  名 10704
经  验 1072
参赛次数 0
文章发表 5
年  龄 0
在职情况 学生
学  校 东莞理工
专  业

  自我简介:

参考代码:
#include<stdio.h>
#include<stdlib.h>

typedef struct _person
{
	int date;
	struct _person *next;
}person;    //使用typedef,后面可直接用person表示该类型,可省略struct _person

person _create(int n)    //创建链表
{
	int i;
	person *head = (person*)malloc(sizeof(person));//建立头指针
	person *p = head;
	p->next = NULL;
	for(i=1;i<=n;i++){    //建立n节链表
		person *q = (person*)malloc(sizeof(person));
		q->date = i;
		p->next = q;    //在原来的基础上增加节点
		p = q;    //再将前一个指针后移一位
		q->next = NULL;
	}
	p->next = head->next;    //将链表首尾相接成环形
	free(head);    //释放头指针,避免读到
	return *p;    //p是最后一个节点
}

int function(person *m)
{
	person *p = NULL;
	int count=0;
	while(m->next != m){
		if(count == 2){
			p = m->next;    //删除节点
			m->next = p->next;
			free(p);
			count = 0;
		}
		count++;
		m = m->next;
	}
	return m->date;
}

int main()
{
	int n;
	person *m = (person*)malloc(sizeof(person));
	scanf("%d",&n);
	*m = _create(n);
	printf("%d",function(m));
	free(m);
	return 0;
}
 

0.0分

0 人评分

  评论区

  • «
  • »