递增的整数序列链表的插入
来源:互联网 发布:网络安全监管机构 编辑:程序博客网 时间:2024/06/05 19:50
习题2.4 递增的整数序列链表的插入 (15分)
本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。
函数接口定义:
List Insert( List L, ElementType X );
其中List
结构定义如下:
typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode List; /* 定义单链表类型 */
L
是给定的带头结点的单链表,其结点存储的数据是递增有序的;函数Insert
要将X
插入L
,并保持该序列的有序性,返回插入后的链表头指针。
裁判测试程序样例:
#include <stdio.h>#include <stdlib.h>typedef int ElementType;typedef struct Node *PtrToNode;struct Node { ElementType Data; PtrToNode Next;};typedef PtrToNode List;List Read(); /* 细节在此不表 */void Print( List L ); /* 细节在此不表 */List Insert( List L, ElementType X );int main(){ List L; ElementType X; L = Read(); scanf("%d", &X); L = Insert(L, X); Print(L); return 0;}/* 你的代码将被嵌在这里 */
输入样例:
51 2 4 5 63
输出样例:
1 2 3 4 5 6
#include <stdio.h>#include <stdlib.h>#define N 20typedef int ElementType;typedef struct Node *PtrToNode;struct Node { ElementType Data; PtrToNode Next;};typedef PtrToNode List;List Read(); void Print( List L ); List Insert( List L, ElementType X );List Merge( List L1, List L2 );int main(){ List L; ElementType X; L = Read(); scanf("%d", &X); L = Insert(L, X); Print(L); return 0;}List Read(){int a[N],i,n;List h,p,q;scanf("%d", &n);for(i=0;i<n;i++)a[i]=2*i+1;for(i=0;i<n;i++)printf("%d ", a[i]);printf("\n"); h=(List)malloc(sizeof(struct Node));h->Next=NULL;p=q=h;for(i=0;i<n;i++){q=(List)malloc(sizeof(struct Node));q->Data=a[i];q->Next=NULL;p->Next=q;p=q;}p->Next=NULL;return h;}void Print( List L ){List p;p=L;while(p){printf("%d ", p->Data);p=p->Next;}printf("\n");}List Insert( List L, ElementType X ){List h,p,q,s;h=L;q=h;p=q->Next;s= (List)malloc(sizeof(struct Node));s->Data=X;while(p->Data<X){q=p;p=p->Next;if(p->Next==NULL){p->Next=s;p->Next->Next=NULL;return h->Next;}}q->Next=s;s->Next=p;//因为带有一个头结点head,头结点没有数据,Print直接打印数据时,头结点会打印乱码,所以返回一个h->Nextreturn h->Next;}
阅读全文
0 0
- 递增的整数序列链表的插入
- 递增的整数序列链表的插入
- 递增的整数序列链表的插入
- pta_链表_递增的整数序列链表的插入_(插入创建操作)
- 在一个递增的链表插入一个数,插入之后该链表仍然递增。
- C++计算整数序列的最长递增子序列的长度
- 2-4 递增链表的插入 链表
- 递增插入链表
- Shell排序的递增序列
- 给定一个整数数组,求它的一个最长递增子序列。
- 序列的最长递增、递减序列
- 剑指offer 面试题41 递增数组中和为s的两个数字 | 和为s的连续整数序列
- <数据结构学习与实验指导>2-4递增链表的插入
- 《数据结构学习与实验指导》2-4:递增链表的插入
- 最长递增子序列问题的求解
- 最长递增子序列问题的求解
- zz:最长递增子序列的求解
- 求最长递增子序列的长度
- GLC-SX-MM光模块是什么?它和GLC-LH-SM光模块有哪些区别?
- 股票入门——新手如何根据公司财报选择股票?
- 计蒜客 15969 百度地图导航 题解
- 数据库事务以及隔离级别
- CPU调度
- 递增的整数序列链表的插入
- ACdream 1007 a + b (数学+快速幂)
- yii ajax 返回json在控制器中的写法
- 菜鸟先飞之vpn
- 欢迎使用CSDN-markdown编辑器
- 5-6 一帮一 (15分)
- QList和QThread不能被用于.so的编写
- warning C4244: “=”: 从“ULONGLONG”转换到“DWORD”,可能丢失数据
- Spring Boot多数据源配置(一)durid、mysql、jpa整合