习题2.4 递增的整数序列链表的插入(15 分)浙大版《数据结构(第2版)》题目集...
生活随笔
收集整理的這篇文章主要介紹了
习题2.4 递增的整数序列链表的插入(15 分)浙大版《数据结构(第2版)》题目集...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
習題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; }/* 你的代碼將被嵌在這里 */輸入樣例:
5 1 2 4 5 6 3輸出樣例:
1 2 3 4 5 6代碼:
List Insert( List L, ElementType X ) {List head = L;///頭結點 無信息L = L->Next;///轉到第一個結點List p = (List)malloc(sizeof(struct Node));p->Data = X;p->Next = NULL;List q = head;///初始為頭結點if(L == NULL)///空鏈表 {head->Next = p;return head;}while(L->Data < X){q = L;L = L->Next;if(L->Next == NULL)///鏈表尾 {L->Next = p;return head;}}p->Next = L;//插在中間q->Next = p;return head; }
?
轉載于:https://www.cnblogs.com/8023spz/p/7512543.html
總結
以上是生活随笔為你收集整理的习题2.4 递增的整数序列链表的插入(15 分)浙大版《数据结构(第2版)》题目集...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 结对-贪吃蛇游戏-开发环境搭建过程
- 下一篇: codeforces 842 D. Vi