網站首頁 編程語言 正文
單鏈表的遍歷
描述:
牛牛從鍵盤輸入一個長度為 n 的數組,問你能否用這個數組組成一個鏈表,并順序輸出鏈表每個節點的值。
輸入描述:
第一行輸入一個正整數 n ,表示數組的長度
第二行輸入n個數據
輸出描述:
制作一個鏈表然后輸出這個鏈表的值
輸入:
4 5 4 2 1
輸出:
5 4 2 1
#include<stdio.h>
#include<stdlib.h>
typedef int DataType;
typedef struct linklist
{
DataType x;
struct linklist *next;
}LinkList;
LinkList* InitLinkList()
{
LinkList* head;
head = (LinkList*)malloc(sizeof(LinkList));
head->next = NULL;
return head;
}
void CreateListL(LinkList* head,int n)
{
LinkList* s;
LinkList* last;
last = head;
int i = 0;
for (i = 0; i < n; i++)
{
s = (LinkList*)malloc(sizeof(LinkList));
scanf("%d",&s->x);
s->next = NULL;
last->next = s;
last = s;
}
}
void print(LinkList* head)
{
LinkList* p;
p = head->next;
while (p != NULL)
{
printf("%d ", p->x);
p = p->next;
}
}
int main()
{
int n = 0;
scanf("%d", &n);
LinkList *S = InitLinkList();
CreateListL(S,n);
print(S);
return 0;
}
對于這個問題,我們要注意兩個地方:
1.我們平時對單鏈表進行遍歷往往是從前往后遍歷
2.輸入樣例的順序和遍歷的順序是一樣的,這就要求我們使用尾插法創建單鏈表。
單鏈表的求和
描述:
牛牛輸入了一個長度為 n 的數組,他想把這個數組轉換成鏈表,鏈表上每個節點的值對應數組中一個元素的值,然后遍歷鏈表并求和各節點的值。
輸入描述:
第一行輸入一個正整數 n ,表示數組的長度。
第二行輸入 n 個正整數,表示數組中各個元素的值。
輸出描述:
把數組轉換成鏈表然后對其求和并輸出這個值。
輸入:
5 5 2 3 1 1
輸出:
12
#include<stdio.h>
#include<stdlib.h>
typedef int DataType;
typedef struct linklist
{
DataType data;
struct linklist* next;
}LinkList;
LinkList* InitList()
{
LinkList* head;
head = (LinkList*)malloc(sizeof(LinkList));
head->next=NULL;
return head;
}
void CreatLinkL(LinkList *head,int n)
{
LinkList* s;
LinkList* last;
last = head;
int i = 0;
for (i = 0; i < n; i++)
{
s = (LinkList*)malloc(sizeof(LinkList));
scanf("%d", &s->data);
s->next = NULL;
last->next = s;
last = s;
}
}
void get_sum(LinkList* head)
{
LinkList* p;
int sum = 0;
p = head->next;
while (p != NULL)
{
sum += p->data;
p = p->next;
}
printf("%d", sum);
}
int main()
{
LinkList* s;
s = InitList();
int n = 0;
scanf("%d", &n);
CreatLinkL(s, n);
get_sum(s);
return 0;
}
這一題對于單鏈表的創建就沒有要求了,用頭插法和尾插法都可以。然后遍歷單鏈表進行求和就可以了,很簡單的兩道題。
原文鏈接:https://blog.csdn.net/m0_63463510/article/details/125751727
相關推薦
- 2022-03-15 React?Router?V6更新內容詳解_React
- 2022-11-11 Android布局ConstraintLayout代碼修改約束及輔助功能_Android
- 2022-07-03 C語言詳解strcmp函數的分析及實現_C 語言
- 2022-04-08 WPF基本控件介紹_基礎應用
- 2022-06-01 ASP.Net?Core中的日志與分布式鏈路追蹤_實用技巧
- 2022-12-22 Python?Flask框架實現Proteus仿真Arduino與網頁數據交互_python
- 2023-01-26 Redis中的慢日志_Redis
- 2022-09-26 nodemon安裝在開發環境(非全局安裝)報錯解決【兩種方式】
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支