#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef struct Node
{
ElemType data;//定义数据域
struct Node *next;//定义指针域
} LNode;
LNode *creat(int n)//尾插法建立单链表
{
int i;
LNode *head, *pnew, *prear;//定义指针
head = (LNode *)malloc(sizeof(LNode));//申请头结点空间
head->next = NULL;//置空链表
prear = head;//头结点即尾节点
printf("请输入你想录入的元素:");
for(i = 0; i < n; i++)
{
pnew = (LNode *)malloc(sizeof(LNode));//申请元素存储空间
scanf("%d",&pnew->data);//录入元素
prear->next = pnew;//prear->next一直指向pnew
prear = pnew;//pnew一直属于尾节点
}
pnew->next =NULL;//处理尾节点
return head;
}
void print(LNode *head)//输出链表
{
LNode *p;//定义变量
p = head->next;//赋值
while(p!=NULL)
{
printf("%d",p->data);//打印链表中的元素
p = p->next;//遍历
}
printf("\n");
}
int main()
{
int a,n;
LNode *head;
while(1)
{
printf("1,建立链表\n");
printf("2,输出链表\n");
printf("请输入你的操作:");
scanf("%d",&a);
switch(a)
{
case 1:
{
printf("请输入你想建立的数字多少:");
scanf("%d",&n);
head = creat(n);
break;
}
case 2:
{
print(head);
break;
}
}
}
}
#include <stdlib.h>
typedef int ElemType;
typedef struct Node
{
ElemType data;//定义数据域
struct Node *next;//定义指针域
} LNode;
LNode *creat(int n)//尾插法建立单链表
{
int i;
LNode *head, *pnew, *prear;//定义指针
head = (LNode *)malloc(sizeof(LNode));//申请头结点空间
head->next = NULL;//置空链表
prear = head;//头结点即尾节点
printf("请输入你想录入的元素:");
for(i = 0; i < n; i++)
{
pnew = (LNode *)malloc(sizeof(LNode));//申请元素存储空间
scanf("%d",&pnew->data);//录入元素
prear->next = pnew;//prear->next一直指向pnew
prear = pnew;//pnew一直属于尾节点
}
pnew->next =NULL;//处理尾节点
return head;
}
void print(LNode *head)//输出链表
{
LNode *p;//定义变量
p = head->next;//赋值
while(p!=NULL)
{
printf("%d",p->data);//打印链表中的元素
p = p->next;//遍历
}
printf("\n");
}
int main()
{
int a,n;
LNode *head;
while(1)
{
printf("1,建立链表\n");
printf("2,输出链表\n");
printf("请输入你的操作:");
scanf("%d",&a);
switch(a)
{
case 1:
{
printf("请输入你想建立的数字多少:");
scanf("%d",&n);
head = creat(n);
break;
}
case 2:
{
print(head);
break;
}
}
}
}