数据结构—2208: 交换节点(线性表)
来源:互联网 发布:类似maka软件 编辑:程序博客网 时间:2024/05/22 13:50
2208: 交换节点(线性表)
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 34 Solved: 27
[Submit][Status][Web Board]
Description
(线性表)编写一个算法来交换单链表中指针P所指结点与其后继结点,HEAD是该链表的头指针,P指向该链表中某一结点。
Input
输入链表长度:6
输入链表:1 2 3 4 5 6
输入p指向的节点:5
Output
1 2 3 4 6 5
Sample Input
57 6 9 8 23
Sample Output
7 6 8 9 2
#include <stdio.h>#include <stdlib.h>#include<malloc.h>int a[100];typedef int ElemType;typedef struct LNode{ ElemType data; struct LNode *next;} LinkList;void IintList(LinkList *L){ L=(LinkList *)malloc(sizeof(LinkList)); L->next=NULL;}void CreatList(LinkList *L,ElemType a[],int n){ LinkList *s,*r; int i; r=L; for(i=0; i<n; i++) { s=(LinkList *)malloc(sizeof(LinkList)); s->data=a[i]; r->next=s; r=s; } r->next=NULL;}void exchangelist(LinkList *L,int k){ LinkList *p=L,*q,*back; int i=0; while(i<k&&p->next!=NULL) { p=p->next; i++; } q=p->next; if(q!=NULL) { if(p==L) { p->next=q->next; q->next=p; L=q; } else { back=L; while(back->next!=p) back=back->next; back->next=q; p->next=q->next; q->next=p; } }}void DispList(LinkList *L){ LinkList *p=L->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; }}int main(){ LinkList L; int n,i,k; scanf("%d",&n); for(i=0; i<n; i++) scanf("%d",&a[i]); scanf("%d",&k); IintList(&L); CreatList(&L,a,n); exchangelist(&L,k); DispList(&L); return 0;}
0 0
- 数据结构—2208: 交换节点(线性表)
- 数据结构—线性表
- 数据结构—线性表
- 数据结构—线性表
- 数据结构—线性表
- 数据结构之—线性表之—浅谈单链表有头结点和无头节点
- [数据结构]线性结构——线性表
- 链表节点交换
- 数据结构——线性表
- 数据结构——线性表
- 数据结构——线性表
- 数据结构——线性表
- 数据结构——线性表
- 数据结构——线性表
- 数据结构——线性表
- 数据结构——线性表
- 数据结构——线性表
- 数据结构——线性表
- 计算机组成原理【3】
- 关于团队|打铁还需自身硬
- Android实现一个apk连接两个ble设备
- 2.5 循环语句
- 基于IMOOC强力django+杀手级xadmin 打造上线标准的在线教育平台课程的学习(5)
- 数据结构—2208: 交换节点(线性表)
- jssdk微信上传一张图片的方法
- css之border/padding/margin
- 2.1 2722 和数
- servlet编码
- Sublime text追踪函数插件:ctags
- install opencv with linux
- 基于hessian协议调用java方法-一个map例子
- 写在最前面