/*Q4638.(10分)创建单向链表 要求:自定义函数create(),实现创建一个链表,
将此函数定义为指针类型,使其返回值为指针值,返回值指向一个struct LNode类型数据,实际上是返回链表的头指针。
在main()函数中调用自定义函数create(),实现创建一个链表,并将链表中的数据输出。
最后别忘了释放链表内存。这里使用malloc()函数实现动态开辟存储单元。
声明struct LNode类型,代码如下:
struct LNode
{
int data;
struct LNode next;
};
程序运行结果示例:
输入:
输入你想创建的结点个数:3
输入整数: 1 2 3
输出:
结果是: 1 2 3
输入提示:"输入你想创建的结点个数:"
输入格式:"%d"
输入提示:"输入整数:\n"
输入格式:"%d"
输出提示:"结果是:\n"
输出格式:"%d "/
#include
#include
struct LNode
{
int data;
struct LNode *next;
}D;
struct LNode*create()
{
int n,i;
struct LNode*pHead=NULL,*pNew,*pTail;
printf("输入你想创建的结点个数:");
scanf("%d",&n);
printf("输入整数:\n");
for(i=0;i<n;i++)
{
pNew=(struct LNode*)malloc(sizeof(struct LNode*));
scanf("%d",&pNew->data);
if(pHead==NULL) pHead=pNew=pTail;
else
{
pTail->next=pNew;
pTail=pNew;
}
}
return pHead;
}
void List(LNode *pHead)
{
struct LNode *p=pHead;
while(p!=NULL)
{
printf("%d",p->data);
p=p->next;
}
return;
}
int main()
{
LNode *p=NULL;
p=create();
printf("结果是:\n");
List(p);
void free(LNode *p);
return 0;
}