建立逆序链表

如何建立逆序链表

建立逆序链表就是先输入的后输出,后输入的反而在前边,用一张图来表示的话(不喜勿喷[手动捂脸(/∇\)]):
建立逆序链表_第1张图片
示例代码:

#include
#include
#include
struct data
{
	int sc;
	char name[16];
	data *next;
};
data *Creat()
{
	int sc;
	data *p, *head;
	head = NULL;//不要忘记将head初始化为NULL,下边会用到
	char name[16];
	while (scanf("%d", &sc), sc != 0)
	{
		scanf("%s", name);
		p = new data;
		p->sc = sc;
		strcpy(p->name, name);
		/*两句话建链表*/
		p->next=head;    //1.p->next指向head,第一次时,head在上边赋为NULL,所以第一次时将p->next赋为NULL
		head=p;         //2.将head移至p位置
	}
	return head;
}
void Print(data *head)
{
	data *p=head;
	if(p==NULL)
	{
		printf("Not Found!\n");
		return ;
	}
	for(p=head;p!=NULL;p=p->next)
		printf("%d %s\n",p->sc,p->name);
	return ;
}
int main(void)
{
	data *p;
	p=Creat();
	Print(p);
	return 0;
}

你可能感兴趣的:(新技能)