1,實作鏈表的尾插
圖形結構示意圖

slist.h
#define _CRT_SECURE_NO_WARNINGS 1
#pragma once
#include<stdio.h>
#include<stdlib.h>
typedef int slistdate;//對int重命名,只會方便把int改成double或其他資料型別
struct slistnode
{
slistdate date;//
struct slistnode*next;//指標地址,指向下一個節點
};
typedef struct slistnode slistnode;//方便寫
void slistpushback(slistnode**pphead, slistdate x);//尾插
void slistprint(slistnode*phead);
slist.c
#define _CRT_SECURE_NO_WARNINGS 1
#include"slist.h"
void slistprint(slistnode*phead)
{
slistnode*cur = phead;
while (cur != NULL)//遍歷是cur不等于空就往下走,走到尾部還不等于空,走到下一個節點,是空的
{
printf("%d->", cur->date);
cur = cur->next;//cur指向下一個指標
}
printf("NULL\n");
}
void slistpushback(slistnode**pphead, slistdate x)
{
slistnode*newnode = (slistnode*)malloc(sizeof(slistnode));// 要尾插就要動態開辟一個節點出來
newnode->date = x;//將newnode初始化
newnode->next = NULL;//把next賦值為空
//那么我們這個時候要找尾
//找到尾節點的指標
if (*pphead == NULL)
{
*pphead = newnode;
}
else
{
slistnode*tail = *pphead;//我們要讓tail走到尾部去,而非走到空
while (tail->next != NULL)
{
tail = tail->next;
}//找到了尾節點,鏈接新節點
tail->next=newnode;
}
}
text.c
#define _CRT_SECURE_NO_WARNINGS 1
#include"slist.h"
//鏈表的概念及結構
//鏈表是一種物理存盤結構上非連續,非順序的存盤結構,資料元素的邏輯結構是通過鏈表中的指標來鏈接
void testslist()
{
slistnode*plist = NULL;//一開始定義一個指標,但啥都沒有,所以先賦值空指標
slistpushback(&plist, 1);//尾插//也要傳地址才可以,實參傳給形參,形參是實參的臨時拷貝
slistpushback(&plist, 2);
slistpushback(&plist, 3);
slistpushback(&plist, 4);
slistprint(plist);
}
int main()
{
//需要定義一個指標指向頭部
testslist();
return 0;
}
![]()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/344236.html
標籤:其他
上一篇:每個平凡人心中都有一個不平凡的世界,讓Map和Set帶你跨過山和大海,也穿過人山人海
下一篇:二叉搜索樹 【資料結構】
