#include<stdio.h>
#include<assert.h>
#include<malloc.h>
#define ElemType int
typedef struct ListNode
{
ElemType data;
struct ListNode* Next;
}ListNode;
typedef ListNode* List;
void InitList(List* head)
{
(*head) = NULL;
}
// 尾插法
void CreateEndList(List* head)
{
// 申请第一个节点
*head = (ListNode*)malloc(sizeof(ListNode));
(*head)->data = 1;
(*head)->Next = NULL;
// 将p作为一个额外的节点
ListNode* p = *head;
for (int i = 2; i <= 10; i++)
{
ListNode* s = (ListNode*)malloc(sizeof(ListNode));
assert(s != NULL);
s->data = i;
s->Next = NULL;
p->Next = s;
// 节点后移
p = s;
}
}
// 头插法
void CraeteHeadList(List* head)
{
*head = (ListNode*)malloc(sizeof(ListNode));
assert(*head != NULL);
(*head)->date = 1;
(*head)->next = NULL;
for (int i = 2; i <= 10; i++)
{
ListNode* s = (ListNode*)malloc(sizeof(ListNode));
assert(s != NULL);
s->data = i;
s->Next = *head;
*head = s;
}
}
void ShowList(List head)
{
ListNode* p = head;
while (p != NULL)
{
printf("%d-->", p->data);
p = p->Next;
}
printf("NULL.\n");
}
void main()
{
List mylist;
InitList(&mylist);
CreateEndList(&mylist);
ShowList(mylist);
}
数据结构 无头节点的单链表 创建
于 2023-04-02 20:20:37 首次发布