數據結構與算法編程題13

設計算法將一個帶頭結點的單鏈表A分解為兩個具有相同結構的鏈表B、C,其中B表的結點為A表中值小于零的結點,而C表的結點為A表中值大于零的結點(鏈表A中的元素為非零整數,要求B、C表利用A表的結點) for example: A -1 2 3 -2 4 5

#include <iostream>
using namespace std;typedef int Elemtype;
#define ERROR 0;
#define OK    1;typedef struct LNode
{Elemtype data;      //結點保存的數據struct LNode* next; //結構體指針
}LNode, * LinkList;/*單鏈表初始化*/
bool Init_LinkList(LinkList& L)
{L = (LinkList)malloc(sizeof(LNode));  //新建頭結點if (L == NULL){return ERROR;}L->data = 0;L->next = NULL;return OK;
}/*單鏈表頭插法*/
bool LinkList_head_instert(LinkList& L)
{int x = 0;LNode* p = NULL;while (cin >> x){p = (LinkList)malloc(sizeof(LNode));if (p != NULL)  //防止分配地址失敗{p->data = x;p->next = L->next;L->next = p;if (cin.get() == '\n') break;  //檢測換行符}else{exit(0);cout << "內存分配失敗" << endl;}}return OK;
}/*單鏈表尾插法*/
bool LinkList_tail_instert(LinkList& L)
{int x = 0;LNode* p = NULL;LNode* r = NULL;r = L;while (cin >> x){p = (LinkList)malloc(sizeof(LNode));if (p != NULL)  //防止分配地址失敗{p->data = x;p->next = NULL;r->next = p;r = p;if (cin.get() == '\n') break;  //檢測換行符}else{exit(0);cout << "內存分配失敗" << endl;}}return OK;
}/*單鏈表遍歷*/
bool LinkList_All_value(LinkList L)
{if (L->next == NULL){cout << "鏈表為空" << endl;return ERROR;}LNode* s = NULL;s = L->next;while (s != NULL){cout << s->data << "   ";s = s->next;}cout << endl;free(s);return OK;
}/*單鏈表長度*/
int LinkList_length(LinkList L)
{int count = 0;LNode* s = NULL;s = L->next;while (s != NULL){count++;s = s->next;}return count;
}/*清空單鏈表*/
void Clear_LinkList(LinkList& L)
{LNode* p = L->next;LNode* q = NULL;while (p != NULL){q = p->next;free(p);p = q;}L->next = NULL;
}/*銷毀單鏈表*/
void Destory_LinkList(LinkList& L)
{LNode* p = NULL;LNode* q = NULL;p = L;while (p != NULL){q = p->next;free(p);p = q;}L = NULL;
}bool zero_panding(LinkList& A, LinkList& B, LinkList& C)
{LNode* pa = NULL;	LNode* pb = NULL;LNode* pc = NULL;pa = A->next;A->next = NULL;pb = B; pc = C;if (pa == NULL){cout << "單鏈表為空" << endl;return ERROR;}while (pa != NULL){if (pa->data < 0){pb->next = pa;  //尾插pa = pa->next;pb = pb->next;}else //pa->data > 0{pc->next = pa;  //尾插pa = pa->next;pc = pc->next;}}pb->next = NULL;pc->next = NULL;return OK;
}
/*設計算法將一個帶頭結點的單鏈表A分解為兩個具有相同結構的鏈表B、C,其中B表的結點為A表中值小于
零的結點,而C表的結點為A表中值大于零的結點(鏈表A中的元素為非零整數,要求B、C表利用A表的結點)*/
//for example: A   -1 2  3 -2 4 5
int	main(void)
{LinkList A = NULL;Init_LinkList(A);LinkList_tail_instert(A);//test1: -1 2 3 -2 4 5  test2:  -1 2 3 -2 4 5 7 -10  test3: -1 2 3 -2LinkList_All_value(A);LinkList B = NULL;Init_LinkList(B); //新建B鏈表(帶頭節點)LinkList C = NULL;Init_LinkList(C); //新建C鏈表(帶頭節點)zero_panding(A, B, C);LinkList_All_value(B);LinkList_All_value(C);return 0;
}

在這里插入圖片描述

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

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

相關文章

SpringBoot + 通義千問 + 自定義React組件,支持EventStream數據解析!

一、前言 大家好&#xff01;我是sum墨&#xff0c;一個一線的底層碼農&#xff0c;平時喜歡研究和思考一些技術相關的問題并整理成文&#xff0c;限于本人水平&#xff0c;如果文章和代碼有表述不當之處&#xff0c;還請不吝賜教。 最近ChatGPT非常受歡迎&#xff0c;尤其是…

virtualList 封裝使用 虛擬列表 列表優化

虛擬列表 列表優化 virtualList 組件封裝 virtualList 組件封裝 本虛擬列表 要求一次性加載完所有數據 不適合分頁 新建一個select.vue 組件頁面 <template><div> <el-select transfer"true" :popper-append-to-body"true"popper-class…

YOLOv8/5不顯示FLPOs

YOLOv8/5不顯示FLPOs,避免自媒體搬運,請下滑! YOLOv8/5不顯示FLPOs,避免自媒體搬運,請下滑! YOLOv8/5不顯示FLPOs,避免自媒體搬運,請下滑! YOLOv8/5不顯示FLPOs,避免自媒體搬運,請下滑! YOLOv8/5不顯示FLPOs,避免自媒體搬運,請下滑! YOLOv8/5不顯示FLPOs,避免自…

安裝第三方包報錯 error: Microsoft Visual C++ 14.0 or greater is required——解決辦法

1、問題描述 手動安裝第三方軟件時&#xff0c;可以使用setup.py&#xff0c;來安裝已經下載的第三方包。一般文件下會存在setup&#xff0c;在所要安裝庫的目錄下的cmd執行&#xff1a;python setup.py install報錯&#xff1a;error: Microsoft Visual C 14.0 or greater i…

所有權成果輸出(宗地基本信息表、界址標示表、界址簽章表、界址點成果表、宗地圖、界址說明表、調查審核表)

一、軟件界面&#xff1a; 二、軟件功能&#xff1a; 一、所有權成果要求(宗地基本信息表、界址標示表、界址簽章表、界址點成果表、宗地圖、界址說明表、調查審核表&#xff09; 1 不動產權籍調查表封面 &#xff08;1&#xff09;宗地&#xff08;海&#xff09;代碼&…

基于element-plus定義表單配置化擴展表單按鈕

文章目錄 前言一、新增btn.vue組件二、使用總結如有啟發&#xff0c;可點贊收藏喲~ 前言 在后臺管理系統一般都存在列表查詢&#xff0c;且可輸入數據進行查詢 基于element-plus定義表單配置化 新增按鈕配置化 一、新增btn.vue組件 <template><template v-for&qu…

代碼隨想錄算法訓練營第四十二天【動態規劃part04】 | 01背包、416. 分割等和子集

01背包問題 題目鏈接&#xff1a; 題目頁面 求解思路&#xff1a; 確定dp數組及其下標含義&#xff1a;dp[i][j] 表示從下標為 [0] 到 [i] 的物品里任意選取&#xff0c;放進容量為j的背包&#xff0c;此時的價值總和最大值確定遞推公式&#xff1a; 不放物品i&#xff0c;…

centos查看空間使用情況

查看磁盤使用空間 df -h 查看該目錄下其他目錄的大小 du -sh *

自動化測試框架[Cypress 常見的“坑”]

Cypress命令是異步的 假設使用Selenium時&#xff0c;有如下這段代碼

Unity中顏色空間Gamma與Linear

文章目錄 前言一、人眼對光照的自適應1、光照強度與人眼所見的關系2、巧合的是&#xff0c;早期的電子脈沖顯示屏也符合這條曲線3、這兩條曲線都巧合的符合 y x^2.2^&#xff08;Gamma2.2空間&#xff09; 二、Gamma矯正1、沒矯正前&#xff0c;人眼看電子脈沖顯示屏&#xff…

學習筆記,http協議1.0,1.1,2.0之間的差別

文章目錄 前言http 1.1與http 1.0http 2.0 與http 1.x注意點 前言 僅做個人學習筆記記錄&#xff0c;如有錯誤&#xff0c;請多多包涵。 學習鏈接&#xff1a; HTTP 1.0與1.1、2.0之間的區別 面試官&#xff1a;說說 HTTP1.0/1.1/2.0 的區別? http 1.1與http 1.0 http協議1…

用 js 實現 判斷兩個數組是否相同

文章目錄 問題分析 問題 有數組 array1 和 array2 &#xff0c;如何判斷這兩個數組是否相同 分析 判斷兩個數組是否相同&#xff0c;你可以檢查它們的長度和每個元素是否相等。下面是一個示例代碼&#xff1a; function arraysAreEqual(arr1, arr2) {if (arr1.length ! arr2.…

事件溯源模式

概念解釋 事件溯源&#xff08;Event Sourcing&#xff09;是一種設計模式&#xff0c;其核心思想是將系統的狀態變化表示為一系列不可變的事件&#xff0c;并將這些事件存儲在事件日志中。系統的當前狀態可以通過重新應用&#xff08;回放&#xff09;這些事件來還原&#xf…

芯片的測試方法

半導體的生產流程包括晶圓制造和封裝測試&#xff0c;在這兩個環節中分別需要完成晶圓檢測(CP, Circuit Probing)和成品測試(FT, Final Test)。無論哪個環節&#xff0c;要測試芯片的各項功能指標均須完成兩個步驟&#xff1a;一是將芯片的引腳與測試機的功能模塊連接起來&…

促進材料基因工程基礎理論、前沿技術和關鍵裝備的發展和應用,第七屆材料基因工程高層論壇將于12月重慶舉辦,龍訊曠騰出席會議

為了進一步促進材料基因工程基礎理論、前沿技術和關鍵裝備的發展和應用&#xff0c;加強國際交流&#xff0c;加速我國新材料的研發和應用&#xff0c;由中國材料研究學會、西部科學城重慶高新區管理委員會主辦&#xff0c;重慶大學、北京科技大學、北京云智材料大數據研究院等…

【GUI】-- 14 GUI編程總結

GUI編程 05 GUI總結 在總結之前&#xff0c;先給出之前的貪吃蛇小游戲全代碼。 游戲的主啟動類&#xff1a; package com.duo.snake;import javax.swing.*;//游戲的主啟動類 public class StartGame {public static void main(String[] args) {JFrame frame new JFrame();…

Java面試-微服務篇-SpringCloud

Java面試-微服務篇-SpringCloud SpringCloud 常見組件注冊中心Eureka, Nacos負載均衡Ribbon服務雪崩, 熔斷降級微服務的監控來源 SpringCloud 常見組件 通常情況下 Eureka: 注冊中心Ribbon: 負載均衡Feign: 遠程調用Hystrix: 服務熔斷Zuul/Gateway: 網關 SpringCloudAlibaba…

【開源】基于Vue.js的天然氣工程運維系統的設計和實現

項目編號&#xff1a; S 022 &#xff0c;文末獲取源碼。 \color{red}{項目編號&#xff1a;S022&#xff0c;文末獲取源碼。} 項目編號&#xff1a;S022&#xff0c;文末獲取源碼。 目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、功能模塊2.1 系統角色分類2.2 核心功能2.2.1 流程…

服務限流算法:從令人頭疼到信手拈來

前言 隨著系統規模的擴大和用戶量的增加&#xff0c;服務限流成為了一個非常重要的話題。一方面&#xff0c;系統需要能夠處理大量的請求&#xff0c;不至于因為負載過高而崩潰&#xff1b;另一方面&#xff0c;又需要避免惡意攻擊或者其他異常情況對系統造成影響。本文將介紹…