炫意html5
最早CSS3和HTML5移动技术网站之一

C语言指针 -C语言双向链表的创建

输入以 -1 作为结束标志的整数序列(以空格分隔),将它们作为结点的数值,建立一个双向链表。分别从头到尾、从尾到头输出这些链表数据。

C语言代码清单 1:创建双向链表并从两个方向分别输出链表数据

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
struct node
{
int data;
struct node *next, *pre;
} *head, *tail, *p, *new;    //定义链表结点指针
int main( )
{
int c;
printf("请输入以空格分隔的若干整数(-1结束输入):");
head = malloc(sizeof(struct node));       //创建初始链表
head->next = NULL;  head->pre = NULL;     //初始化头结点指针域
head->data = scanf("%d",&c);              //初始化头结点数值域
p = head;                                 //当前指针赋值
scanf("%d",&c);
while(c != -1){                           //循环插入结点
new = malloc(sizeof(struct node));
new->data = c;              //新结点数值域赋值
new->next = NULL;           //新结点后继指针指向为空
new->pre = p;               //新结点前驱指针指向当前结点 p
p->next =new;               //当前结点 p 的后继指针指向新结点
p = new;                    //当前结点指针重置为新插入的结点
scanf("%d",&c);
}
tail = p;
for(p=head; p!=NULL; p=p->next)      //从头到尾打印结点数据
printf("%d ",p->data);
printf("\n");
for(p=tail; p!=NULL; p=p->pre)       //从尾到头打印结点数据
printf("%d ",p->data);
system("pause");
return 0;
}

运行结果为:

请输入以空格分隔的若干整数(-1结束输入):8 48 2 6 7 334 -1
1 48 2 6 7 334
334 7 6 2 48 1

炫意HTML5 » C语言指针 -C语言双向链表的创建

Java基础教程Android基础教程