使用结构体定义单链表节点
typedef struct Node * pNode;
struct Node
{
int Data;
pNode Next;//结构的递归定义 等效于注释代码
//struct Node * Next;
};
主函数
#include
#define NUM 6 //用于指定数组大小
pNode creatList(); //创建固定数值的链表
pNode inputCreatList();//键盘输入创建链表
int main()
{
pNode tmp=(pNode)malloc(sizeof(struct Node) );
tmp=creatList();
tmp=inputCreatList();
return 0;
}
运行结果
使用固定数组创建单链表
pNode creatList()
{
int a[NUM] ={2,1,6,3,4,6};
int i=0,j=NUM;
pNode head=(pNode)malloc(sizeof(struct Node) );
pNode tmp=(pNode)malloc(sizeof(struct Node) );
tmp=head;
for(i=0;i
{
pNode p=(pNode)malloc(sizeof(struct Node) );
tmp->Data=a[i];
tmp->Next=p;
tmp=p;
//tmp->Data=a[i];
}
tmp=head;
//遍历输出链表
printf("方法1:固定数值创建链表:\n");
while(j--)
{
printf("%d, ",tmp->Data);
tmp=tmp->Next;
}
return head;
}
使用键盘输入的值创建链表
pNode inputCreatList()
{
int inN;
pNode head = (pNode) malloc(sizeof(struct Node));
pNode tmp=(pNode) malloc(sizeof(struct Node));
tmp=head;
scanf("%d",&inN);
printf("inN:%d\n",inN);
while(inN--)
{
pNode p =(pNode) malloc (sizeof(struct Node));
tmp->Next=p;
scanf("%d",&(p->Data)); // 键盘输入值为指针赋值
p->Next=NULL; // 新建的节点p next 存储地址初始化为 空
tmp=p; // 当前指针移动到下一个节点
}
tmp=head->Next; // head节点不是第一个节点 跳过。。
printf("方法2:键盘输入数值创建链表:\n");
while(tmp!=NULL)
{
printf("%d, ",tmp->Data);
tmp=tmp->Next;
}
return head;
}
参考:
曾小水
发布了25 篇原创文章 · 获赞 23 · 访问量 1万+
私信
关注
标签:tmp,Node,head,单链,struct,创建,C语言,pNode,Next
来源: https://blog.csdn.net/imwaters/article/details/104146984