博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
递增链表的插入
阅读量:5926 次
发布时间:2019-06-19

本文共 1216 字,大约阅读时间需要 4 分钟。

习题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 
#include
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
1 List Insert( List L, ElementType X ) 2 { 3     PtrToNode p = L; 4     while(p->Next != NULL && X > p->Next->Data)     //找到X的前驱节点p 5         p = p->Next; 6     PtrToNode NewNode = (PtrToNode)malloc(sizeof(struct Node)); 7     NewNode->Data = X; 8     NewNode->Next = p->Next; 9     p->Next = NewNode;10     return L;11 }

 

转载于:https://www.cnblogs.com/FengZeng666/p/9680090.html

你可能感兴趣的文章
使用RxJava从多个数据源获取数据
查看>>
Javascript中的循环变量声明,到底应该放在哪儿?
查看>>
苹果的热榜:积分墙背后的隐秘世界
查看>>
大数据能否力挽国足败落狂澜?
查看>>
HealthKit有名无实,疑点重重
查看>>
“爱思助手”曝为iOS木马:可绕过苹果DRM机制
查看>>
“威胁情报”在手,反黑客终于有地图了!
查看>>
从零开始来看一下Java泛型的设计
查看>>
互联网打响云上争夺战:从计算到生态
查看>>
如何使用CPU来加速你的Linux命令
查看>>
多云战略:企业如何精益求精?
查看>>
12款白帽子用于黑客渗透测试的操作系统
查看>>
大数据对六大领域的挑战
查看>>
思科为其核心网络业务增加了订阅服务
查看>>
社交背水一战?校园日记背后,支付宝野心你真能懂?
查看>>
《企业级ios应用开发实战》一导读
查看>>
嵌入式WiFi芯片价格战已经打响 MCU企业该醒悟了
查看>>
Facebook为Messenger应用添加群组付款功能
查看>>
物联网离风口还差最关键一环?
查看>>
如何评价国内SRC纷纷上线“白帽子协议”?
查看>>