先输入N个整数,按照输入的顺序建立链表。然后遍历并输出偶数位置上的结点信息。
第一行输入整数的个数N 1≤N≤100;第二行依次输入N个整数。
输出该链表偶数位置上的结点的信息。
输入
2
8
12 56 4 6 55 15 33 62
3
1 2 1
输出
56 6 15 62
2
c语言输出链表偶数结点
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qzjhjxj 2022-04-27 22:35关注
供参考:
#include <stdio.h> #include <malloc.h> typedef struct Node {// 链表节点结构 int data; struct Node* next; }Node, * LinkList; void destroyNodes(LinkList L) { Node *pL = NULL; while(L){ pL = L; L = pL->next; free(pL); } } void show(LinkList L)//输出单链表偶数位置结点信息 { if (L == NULL || L->next == NULL) return; int i = 0; Node* p = L->next; while (p) { if ((i+1) % 2 == 0) printf(i+1 == 2 ? "%d":" %d", p->data); i++; p = p->next; } printf("\n"); } // 创建链表 void createListFromHead(LinkList* L, int n) { Node* pL; int i; (*L) = (Node*)malloc(sizeof(Node));// 创建头结点 (*L)->data = -1; (*L)->next = NULL; pL = (*L); for (i = 0;i < n; i++) // 生成链表 { Node* p = (Node*)malloc(sizeof(Node)); p->next = NULL; scanf("%d", &p->data); pL->next = p; pL = p; } } int main() { int n, m; scanf("%d", &n); while (n--){ scanf("%d", &m); LinkList L = NULL; createListFromHead(&L, m); show(L); destroyNodes(L); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用 1
悬赏问题
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!