- 创建单向链表
- 输出链表
- 输出尾节点的值
- 输出节点个数
- 输出奇数节点的个数
- 求最大值
- 逆向输出链表
本链表以储存一整型数据为例,用C语言实现
#include <stdio.h>
#include <stdlib.h>
#define N 5
typedef struct node {
int date;
struct node * next;
}ElemSN;
//创建单向链表
ElemSN * CreateLink(int a[])
{
ElemSN * h, *tail, *p;
int i = 1;
h=tail= (ElemSN *)malloc(sizeof(ElemSN));
h->date = a[0];
h->next = NULL;
for (i; i < N; i++)
{
p = (ElemSN *)malloc(sizeof(ElemSN));
p->date = a[i];
p->next = NULL;
tail->next = p;
tail = p;
}
return h;
}
//输出单向链表
void PrintLink(ElemSN * h)
{
ElemSN * p;
for (p = h; p != NULL; p = p->next)
{
printf("%d\t", p->date);
}
}
//输出尾节点的值
ElemSN * TailNode(ElemSN * h)
{
ElemSN * p;
for (p = h; p->next; )
p = p->next;
return p;
}
//输出节点个数
int CountNode(ElemSN *