sdut pta 鏈表3(優化)-----7-3 sdut-C語言實驗-鏈表的結點插入

7-3 sdut-C語言實驗-鏈表的結點插入

分數 20

全屏瀏覽

切換布局

作者?馬新娟

單位?山東理工大學

給出一個只有頭指針的鏈表和 n 次操作,每次操作為在鏈表的第 m 個元素后面插入一個新元素x。若m 大于鏈表的元素總數則將x放在鏈表的最后。

輸入格式:

多組輸入。每組數據首先輸入一個整數n(n∈[1,100]),代表有n次操作。

接下來的n行,每行有兩個整數Mi(Mi∈[0,10000]),Xi。

輸出格式:

對于每組數據。從前到后輸出鏈表的所有元素,兩個元素之間用空格隔開。

輸入樣例:

4
1 1
1 2
0 3
100 4

輸出樣例:

3 1 2 4

代碼長度限制

16 KB

時間限制

400 ms

內存限制

64 MB

棧限制

8192 KB

#include <stdio.h>
#include <stdlib.h>
struct node
{int a;struct node *next;
};//定義結構體類型;
int main()
{struct node *head,*p;int n,i;int x;while(~scanf("%d",&n)){head = (struct node*)malloc(sizeof(struct node));//要多組輸入,每一組輸入都要重新開辟一個頭結點;head -> next = NULL;for(i=0; i<n; i++){p = (struct node*)malloc(sizeof(struct node));p -> next = NULL;scanf("%d%d",&x,&p -> a);struct node *q = head -> next;struct node *qi = head;//定義兩個游動指針while(q&&x--)//尋找插入的位置;{q = q -> next;qi = qi -> next;}qi -> next = p;p -> next = q;//插入節點;}struct node *p;p = head -> next;while(p){if(p -> next){printf("%d ",p -> a);}else printf("%d\n",p -> a);p = p -> next;}}return 0;
}
 

#include <stdio.h> #include <stdlib.h>

這兩行代碼包含了標準的輸入輸出庫和標準庫,后者提供了動態內存分配的功能。

struct node { int a; struct node *next; };//定義結構體類型;

定義了一個名為node的結構體,它包含一個整型數據a和一個指向同類型結構體的指針next。這個結構體用于表示鏈表中的每個節點。

int main() { // ... }

定義了main函數,程序的執行從這里開始。

struct node *head, *p; int n, i; int x;

聲明了頭節點指針head,新節點指針p,循環計數器ni,以及用于臨時存儲輸入值的x

while(~scanf("%d",&n)) { // ... }

使用while循環讀取每組輸入的整數數量n,直到輸入失敗(例如文件結束EOF)。~scanf是一種技巧,用于檢查scanf是否成功讀取了輸入。

head = (struct node*)malloc(sizeof(struct node)); head->next = NULL;

為鏈表的頭節點分配內存,并初始化頭節點的next指針為NULL

for(i = 0; i < n; i++) { // ... }

循環n次,每次讀取一對整數。

p = (struct node*)malloc(sizeof(struct node)); scanf("%d%d", &x, &p->a);

為新節點分配內存,并讀取一個整數到x,然后將p->a設置為讀取的值。

struct node *q = head->next; struct node *qi = head; while(q && x--) { // ... }

這段代碼試圖通過x--來尋找插入新節點的位置,

qi->next = p; p->next = q;

將新節點p插入到鏈表中qi節點的后面。

p = head->next; while(p) { // ... }

遍歷鏈表并打印所有節點的數據。

return 0; }

main函數返回0,表示程序正常結束。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14502.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14502.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14502.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于springboot的畢業設計系統的開發源碼

風定落花生&#xff0c;歌聲逐流水&#xff0c;大家好我是風歌&#xff0c;混跡在java圈的辛苦碼農。今天要和大家聊的是一款基于springboot的畢業設計系統的開發。項目源碼以及部署相關請聯系風歌&#xff0c;文末附上聯系信息 。 項目簡介&#xff1a; 畢業設計系統能夠實現…

學習通高分免費刷課實操教程

文章目錄 概要整體架構流程詳細步驟云上全平臺登錄步驟小結 概要 我之前提到過一個通過瀏覽器的三個腳本就可以免費高分刷課的文章&#xff0c;由于不方便拍視頻進行實操演示&#xff0c;然后寫下了這個實操教程&#xff0c;之前的三個腳本劃到文章末尾 整體架構流程 整體大…

窗口函數 | rows between …… and ……

ROWS BETWEEN ... AND ... 是 SQL 窗口函數中的一個子句&#xff0c;用于定義窗口函數操作的行范圍。窗口函數允許用戶對一組相關的記錄執行計算&#xff0c;這些記錄被稱為窗口。 基本語法 <窗口函數> OVER ( [PARTITION BY <列名>] ORDER BY <列名> [AS…

前端基礎入門三大核心之HTML篇 —— SVG的viewBox、width和height:繪制矢量圖的魔法比例尺【含代碼示例】

前端基礎入門三大核心之HTML篇 —— SVG的viewBox、width和height&#xff1a;繪制矢量圖的魔法比例尺【含代碼示例】 基本概念與作用viewBoxwidth和height 代碼示例與實踐基礎示例動態調整示例 不同角度的使用思路保持比例縮放自動適應容器 實際問題與解決方案結語與討論 在前…

華為云之Zabbix監控平臺部署實踐

華為云之Zabbix監控平臺部署實踐 一、本次實踐介紹1.1 實踐環境簡介1.3 本次實踐完成目標 二、 相關服務介紹2.1 華為云ECS云服務器介紹2.2 Zabbix介紹 三、環境準備工作3.1 預置實驗環境3.2 查看預置環境信息 四、登錄華為云4.1 登錄華為云4.2 查看ECS狀態4.3 連接ECS彈性云服…

力扣HOT100 - 287. 尋找重復數

解題思路&#xff1a; 快慢指針 第一步&#xff0c;慢指針每次移動一步&#xff0c;快指針每次移動兩步&#xff0c;直到它們相遇。這一步保證了它們在環中相遇。 接下來&#xff0c;將其中一個指針&#xff08;快指針或慢指針&#xff09;重置到起點&#xff08;即數組的第一…

SpringBoot實現郵箱驗證碼

自行創建一個SpringBoot項目 導入SpringBoot所需要的郵箱驗證碼的包 <!--郵件發送--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.6.1</version>…

前后端部署筆記

windows版&#xff1a; 如果傻唄公司讓用win電腦部署&#xff0c;類似于我們使用筆記本做局域網服務器&#xff0c;社內使用。 1.安裝win版的nginx、mysql、node、jdk等 2.nginx開機自啟參考Nginx配置及開機自啟動&#xff08;Windows環境&#xff09;_nginx開機自啟動 wind…

UPPAAL使用方法

UPPAAL使用方法 由于剛開始學習時間自動機及其使用方法&#xff0c;對UPPAAL使用不太熟悉&#xff0c;網上能找到的教程很少&#xff0c;摸索了很久終于成功實現一個小例子&#xff0c;所以記錄一下詳細教程。 這里用到的例子參考【UPPAAL學習筆記】1&#xff1a;基本使用示例…

專業級潤滑油,一站式批發服務

要為機械設備提供持久穩定的動力保障嗎&#xff1f;選擇我們的專業級潤滑油&#xff0c;讓您的設備運轉更順暢&#xff0c;效率更高。 我們專業從事潤滑油批發多年&#xff0c;以優質的產品、合理的價格和完善的服務贏得了廣大客戶的信賴。無論是汽車、機械還是工業設備&#x…

【Vue3】env環境變量的配置和使用(區分cli和vite)

原文作者&#xff1a;我輩李想 版權聲明&#xff1a;文章原創&#xff0c;轉載時請務必加上原文超鏈接、作者信息和本聲明。 文章目錄 前言一、env文件二、vue3cli加載env1..env配置2..dev配置&#xff08;其他環境參考&#xff09;3.package.json文件4.使用 三、vue3vite加載e…

【html5】03-新表單元素及屬性

目錄 1 引言 2 智能表單控件-type 3 表單屬性 form input 5 答疑--解決required自定義提示信息 1 引言 HTML5引入了一系列新的表單輸入類型&#xff0c;如email、url、number、range、date、time、datetime-local、month、week、search、color和tel等。這些新類型增強了表…

FFmpeg源碼:bytestream_get_byte函數解析

一、引言 FFmpeg源碼中經常使用到bytestream_get_byte這個函數&#xff0c;比如使用FFmpeg對BMP圖片進行解析&#xff0c;其源碼會調用函數bmp_decode_frame&#xff0c;而該函數內部會通過bytestream_get_byte讀取BMP 的header。本文講解函數bytestream_get_byte的作用和內部…

Spark SQL 中DataFrame DSL的使用

在上一篇文章中已經大致說明了DataFrame APi,下面我們具體介紹DataFrame DSL的使用。DataFrame DSL是一種命令式編寫Spark SQL的方式&#xff0c;使用的是一種類sql的風格語法。 文章鏈接&#xff1a; 一、單詞統計案例引入 import org.apache.spark.sql.{DataFrame, SaveMod…

在SpringBoot中添加自定義增強SpringEvent事件組件

場景說明&#xff1a;在使用SpringBoot時&#xff0c;總是要添加一大堆自定義事件&#xff0c;實現ApplicationEvent&#xff0c;來實現事件發送。 這樣寫代碼量非常大。為了方便和避免出錯&#xff0c;封裝自定義的模塊&#xff0c;快速實現泛型中調用SpringEvent實現事件。省…

Xinstall助力實現App間直接跳轉,提升用戶體驗

在移動互聯網時代&#xff0c;App已成為我們日常生活中不可或缺的一部分。然而&#xff0c;在使用各類App時&#xff0c;我們經常會遇到需要在不同App之間切換的情況&#xff0c;這時如果能夠直接跳轉&#xff0c;將會大大提升用戶體驗。而Xinstall正是這樣一款能夠幫助開發者實…

OpenCV 獲取 RTSP 攝像頭視頻流保存至本地

介紹 Java OpenCV 是一個強大的開源計算機視覺庫&#xff0c;它提供了豐富的圖像處理和分析功能&#xff0c;越來越多的應用需要使用攝像頭來獲取實時視頻流進行處理和分析。 在 Java 中使用 OpenCV 打開攝像頭的基本步驟如下&#xff1a; 確保已經安裝了OpenCV庫使用 OpenC…

Raylib 繪制自定義字體的一種套路

Raylib 繪制自定義字體是真的難搞。我的需求是程序可以加載多種自定義字體&#xff0c;英文中文的都有。 我調試了很久成功了&#xff01; 很有用的參考&#xff0c;建議先看一遍&#xff1a; 瞿華&#xff1a;raylib繪制中文內容 個人筆記&#xff5c;Raylib 的字體使用 - …

W801 實現獲取天氣情況

看了小安派&#xff08;AiPi-Eyes 天氣站&#xff09;的源碼&#xff0c;感覺用W801也可以實現。 一、部分源碼 main.c #include "wm_include.h" #include "Lcd_Driver.h"void UserMain(void) {printf("\n user task \n");Lcd_Init();Lcd_Clea…

MySQL主從復制(五):讀寫分離

一主多從架構主要應用場景&#xff1a;讀寫分離。讀寫分離的主要目標是分攤主庫的壓力。 讀寫分離架構 讀寫分離架構一 架構一結構圖&#xff1a; 這種結構模式下&#xff0c;一般會把數據庫的連接信息放在客戶端的連接層&#xff0c;由客戶端主動做負載均衡。也就是說由客戶…