数据结构实验之链表三:链表的逆置

 

数据结构实验之链表三:链表的逆置

Time Limit: 1000MS Memory Limit: 65536KB

Submit Statistic

Problem Description

输入多个整数,以-1作为结束标志,顺序建立一个带头结点的单链表,之后对该单链表的数据进行逆置,并输出逆置后的单链表数据。

Input

输入多个整数,以-1作为结束标志。

Output

输出逆置后的单链表数据。

Example Input

12 56 4 6 55 15 33 62 -1

Example Output

62 33 15 55 6 4 56 12

 

 

 

 

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef struct node
{
	int data;
	struct node *next;
}list;
int main()
{
	list *p,*head;
	head = (list *)malloc(sizeof(list));
	head->next = NULL;
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		if(n==-1)
		{
			break;
		}
		else
		{
			p = (list *)malloc(sizeof(list));
			p->data = n;
			p->next = head->next;
			head->next = p;
		}
	}
	p = head->next;
	while(p)
	{
		if(p->next!=NULL)
		{
			printf("%d ",p->data);
		}
		else
		{
			printf("%d\n",p->data);
		}
		p=p->next;
	}

	return 0;
}

只允许蒋文文转载。

 

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
typedef struct LNode{
	int data;
	struct LNode *next; 
}*LinkList,LNode;
LinkList createLinkList(LinkList &head){
	LNode *tail,*p;
	head =tail = (LinkList)malloc(sizeof(LNode));
	head->next = NULL;
	tail = head;
	tail->next = NULL;
	int data=0;
scanf("%d",&data);
do
{
	p = (LinkList)malloc(sizeof(LNode));
	p->next = NULL;
	p->data = data;
	p->next = tail->next; //顺序不能错
    tail->next = p;
	scanf("%d",&data);
}while(data!=-1);
	return head;

}
void display(LinkList p){
	p=p->next;
	while(p){
		if (p->next)
		{
			printf("%d ",p->data);
		}else{
			printf("%d\n",p->data);
		}
		p = p->next;
	}

}

int main(){
	LinkList linklist = NULL;
	createLinkList(linklist);
	display(linklist);
	return 0;
}

 

posted @ 2016-09-17 16:15  Philtell  阅读(117)  评论(0编辑  收藏  举报