【问题描述】 统计单链表中偶数位序的元素和并输出元素值。
【输入形式】
【输出形式】
【样例输入】5
15 16 17 18 19
【样例输出】 16 18
34
【样例说明】链表长度为5,偶数位序元素为 16 18,第二行输出元素和。
【运行结果如下】
【代码如下】
#include<stdio.h>
#include<stdlib.h>
typedef int Status;
typedef int ElemType;
/*线性表的单链表存储结构 */
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
/*初始化链表*/
void InitList_L(LinkList &L)
{
LinkList p;
LinkList pre;
int i;
int n;
scanf ("%d",&n);
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
pre = L; //当前指针
for (i=1; i<=n; i++){
p = (LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
pre->next = p;
p->next = NULL;
pre = pre->next; //当前指针后移
}
}
/*输出链表数据*/
void OutputList_L(LinkList &L){
LinkList pre;
pre = L; //当前指针
int sum = 0;
while (pre->next != NULL)
{
pre = pre->next; //指向奇数位序元素
if (pre->next == NULL) break;
else{
pre = pre->next;
sum = sum + pre->data;
printf("%d ",pre->data);
}
}
printf("\n");
printf("%d",sum);
}
int main()
{
LinkList L;
InitList_L(L);
if (L->next)
OutputList_L(L);
return 0;
}
本文章仅供学习和参考!
欢迎交流~