PAT 1025 反转链表
来源:互联网 发布:手机制作漫画软件 编辑:程序博客网 时间:2024/06/06 03:29
#include <stdio.h>#include <string.h>#define MAXNODE 100001struct Node{ int data; char addr[8]; char next[8];}node[MAXNODE];struct Node *pnode[MAXNODE];int main(void){ char ad[8]; int nnode, k; int i, j; struct Node *tmp; char *next = ad; freopen("pat1025.in", "r", stdin); scanf("%s %d %d", ad, &nnode, &k); for (i = 0; i < nnode; i++) { scanf("%s %d %s", node[i].addr, &node[i].data, node[i].next); pnode[i] = &node[i]; } /* sort according to the list next domain */ for (i = 0; i < nnode; i++) { for(j = i; j < nnode; j++) { if(strcmp(pnode[j]->addr, next) == 0) { /* swap i and j */ if(i != j) { tmp = pnode[i]; pnode[i] = pnode[j]; pnode[j] = tmp; } next = pnode[i]->next; break; } } /* there are some invalid nodes */ if(strcmp(next, "-1") == 0) break; } /* reverse by swapping for every k segment. */ nnode = i + 1; // update nnode struct Node **st, **end; for (i = k - 1; i < nnode; i+=k) { for (st = &pnode[i - k + 1], end = &pnode[i]; st < end; ++st, --end){ tmp = *st; *st = *end; *end = tmp; } } /* build next value */ for(i = 0; i < nnode - 1; ++i) strcpy(pnode[i]->next,pnode[i+1]->addr); strcpy(pnode[i]->next, "-1"); for (i = 0; i < nnode; i++) { printf("%s %d %s\n", pnode[i]->addr, pnode[i]->data, pnode[i]->next); } return(0);}
0 0
- pat 1025 反转链表
- PAT 1025 反转链表
- PAT 1025反转链表
- PAT 1025反转链表
- PAT 反转链表
- ZJU PAT 1025 反转链表
- 反转链表 (PAT-B-1025)
- PAT 乙等 1025 反转链表
- PAT 乙级-1025 链表反转
- PAT 1025. 反转链表*
- PAT 1025.反转链表
- PAT练习-反转链表
- pat 1025. 反转链表
- PAT B1025. 反转链表
- Pat(Basic Level)Practice--1025(反转链表)
- 【PAT】1025 反转链表(25)basic
- PAT 1025 反转链表 (25) 解题报告
- PAT(Python)-1025:反转链表(25)
- QT 加载静态库和动态库的方法
- 模拟简单的时钟
- 使用MySQL WorkBench导出mysql数据库关系图
- 个人注意事项及目标(一直更新中)
- 文章标题
- PAT 1025 反转链表
- 倍增LCA 模板
- 跨平台室内三维地图引擎——FengMap公开测试
- 基站与通信
- Linux常用目录含义总结
- MFC 托盘中添加程序图标
- HDU 1242 Rescue【BFS+优先队列】
- Git 问题,一个 master,多个新功能分支,怎样有序地合并和提交
- 67. Add Binary