循环单链表区间删除
来源:互联网 发布:python except break 编辑:程序博客网 时间:2024/06/10 23:42
本题要求实现带头结点的循环单链表的创建和单链表的区间删除。L是一个带头结点的循环单链表,函数ListCreate_CL用于创建一个循环单链表,函数ListDelete_CL用于删除取值大于min小于max的链表元素。
函数接口定义:
Status ListCreate_CL(LinkList &CL); void ListDelete_CL(LinkList &CL,ElemType min,ElemType max);
裁判测试程序样例:
//库函数头文件包含#include<stdio.h>#include<malloc.h>#include<stdlib.h>//函数状态码定义#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef int ElemType; //假设线性表中的元素均为整型 typedef struct LNode{ ElemType data; struct LNode *next; }LNode,*LinkList; //循环单链表类型定义与单链表定义相同,区别在尾节点next取值Status ListCreate_CL(LinkList &CL); void ListDelete_CL(LinkList &CL, ElemType min, ElemType max);void ListPrint_CL(LinkList &CL) { //输出单链表,空表时输出Empty List。 LNode *p=CL->next; //p指向第一个元素结点 if(p==CL){ printf("Empty List"); return; } while(p!=CL) { if(p->next!=CL) printf("%d ",p->data); else printf("%d",p->data); p=p->next; } } int main() { LinkList CL; ElemType min,max; if(ListCreate_CL(CL)!= OK) { printf("循环链表创建失败!!!\n"); return -1; } scanf("%d%d",&min,&max); ListDelete_CL(CL,min,max); ListPrint_CL(CL); return 0;}/* 请在这里填写答案 */
输入格式:第一行输入一个整数n,表示循环单链表中元素个数,接下来一行共n个整数,中间用空格隔开。第三行输入min和max。
输出格式:输出删除后循环链表的各个元素,两个元素之间用空格隔开,最后一个元素后面没有空格。
输入样例:
61 2 3 4 5 62 5
输出样例:
1 2 5 6
Status ListCreate_CL(LinkList &CL){ int num; scanf("%d", &num); LNode *head, *curptr, *rearptr; head = rearptr = (LNode *)malloc(sizeof(LNode)); if(head == NULL) return ERROR; for(int i = 0; i < num; ++i) { curptr = (LNode *)malloc(sizeof(LNode)); if(curptr == NULL) return ERROR; scanf("%d", &curptr->data); rearptr->next = curptr; rearptr = curptr; } rearptr->next = head; CL = head; return OK;} void ListDelete_CL(LinkList &CL,ElemType min,ElemType max) { LNode *del, *p = CL; while(p->next != CL) { if(p->next->data > min && p->next->data < max) { del = p->next; p->next = del->next; free(del); } else p = p->next; } }
阅读全文
0 0
- 循环单链表区间删除
- 循环单链表区间删除
- PTA 循环单链表区间删除
- 6-1 循环单链表区间删除
- 6-1 循环单链表区间删除(15 分)
- 6-1 循环单链表区间删除(15 分)PTA
- PTA 数据结构 6-1 循环单链表区间删除
- PTA 6-1 循环单链表区间删除(15 分)
- PTA 6-1 循环单链表区间删除(15 分)
- 伸展树(区间加值,反转,循环移动,插入,删除区间,求区间最小值)poj3580
- poj 3580 区间翻转、插入、删除、循环位移
- splay区间翻转及删除区间,平移区间
- 新技能:splay支持区间翻转,区间插入,区间删除
- 【数据结构SPLAY】splay区间翻转,区间和查询,区间插入,区间删除,区间修改
- 【BZOJ1503】Splay 区间删除 (1)
- 循环删除表记录
- 循环链表内节点删除
- vector中循环删除
- container-with-most-water
- pg_bulkload
- 最基本的nginx反向代理配置
- 如何部署、启动、查询和完成流程
- 最短子数组 python
- 循环单链表区间删除
- 关于ActionBarDrawerToggle的构造方法参数详解
- 编程题总结
- restful 大白话
- Java Web 第二章 静态网页开发
- linux gdb set变量的值 例子(三)
- maven/conf/settings.xml中配置- 阿里云仓库
- two-sum
- 线程开启方式_异步委托