1. 程式人生 > >單鏈表的初始化,建立,插入,查詢,刪除

單鏈表的初始化,建立,插入,查詢,刪除

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

typedef int ElemType;

//定義結點型別
typedef struct Node
{
ElemType data; //單鏈表中的資料域
struct Node *next; //單鏈表的指標域
}Node,*LinkedList;


//單鏈表的初始化

LinkedList LinkedListInit()
{
Node *L;
L = (Node *)malloc(sizeof(Node)); //申請結點空間
if(L == NULL) //判斷是否有足夠的記憶體空間
printf("申請記憶體空間失敗n");
L->next = NULL; //將next設定為NULL,初始長度為0的單鏈表
return L;
}


//單鏈表的建立1,頭插法建立單鏈表

LinkedList LinkedListCreatH()
{
Node *L;
L = (Node *)malloc(sizeof(Node)); //申請頭結點空間
L->next = NULL; //初始化一個空連結串列

ElemType x; //x為連結串列資料域中的資料
while(scanf("%d",&x) != EOF)
{
Node *p;
p = (Node *)malloc(sizeof(Node)); //申請新的結點
p->data = x; //結點資料域賦值
p->next = L->next; //將結點插入到表頭L-->|2|-->|1|-->NULL
L->next = p;

相關推薦

C語言單鏈建立插入查詢刪除、求長、排序、遍歷

1.定義連結串列節點 typedef struct Node { int data; struct Node *pNext; }NODE, *PNODE;2.連結串列的建立 PNODE crea

二叉搜尋樹(BST)的建立插入查詢刪除

樹的結構體定義 struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; 插入 因為二叉搜

平衡二叉樹的C語言實現(建立插入查詢刪除、旋轉)【資料結構】

平衡二叉樹(AVL)或者是一顆空樹,或者是具有下列性質的非空二叉搜尋樹: (1). 任一結點的左、右子樹均為AVL樹; (2). 任一結點的左、右子樹高度差的絕對值不超過1。 對於二叉樹中任一結點T,其“平衡因子”(Balance Factor, BF)定義為BF(T)

資料結構--C語言--逆序建立單鏈遍歷單鏈單鏈第5個元素前插入一個值為999的元素刪除單鏈第5個元素

#include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 #define LEN sizeof(struct LNode) struct LNode{ int data; struct LNode

如何用源資料庫.sql檔案初始建立的資料庫

需求:新建立一個數據庫,需要用資料檔案tank.sql初始化資料。 1.執行命令:show databases;檢視現有資料庫。 2.執行create database tank;建立資料庫tank。再檢視資料庫,執行show databases; 新建立的資料庫tank成功了。 3.選

spring容器初始bean之後或銷燬bean之前能做的操作

通過 <bean> 標籤 init-method  初始化bean之後呼叫的方法 destroy-method  銷燬bean之前呼叫的操作方法 <bean id="initQuartzJob" class="com.upinc

單鏈——求兩個集合的差集 AB集合求差集放到C連結串列中

#include <stdio.h> #include <malloc.h> typedef struct Node { int data; struct Node *next; }LNode,*LinkList; void list

線性 初始 插入 刪除 的操作

#include <stdio.h> #include <stdlib.h> #define LEN sizeof(ElemType) #define OK 1 #define TRUE 1 #define ERROR -1 #de

建構函式的初始初始列表還是大括號裡好那種效率高

complex (double r = 0, double i = 0): re (r), im (i){}: re (r), im (i)  初始化列表   放在大括號中實現  re和im的初始化  也可,只是效率差

單鏈的C語言實現及插入刪除演算法

什麼是單鏈表?   由於順序表在插入和刪除是需要做大量的元素移動工作,而且需要連續的物理空間,因此其缺點是十分明顯的,為了解決這一問題,不需要預先分配連續的記憶體地址空間、插入刪除元素不需要做大量移動工作的連結串列出現了。但解決問題的同時也擁有自己的缺點,即不能隨機存取。   在連結串列中,每個

Mysql主鍵 UUID做主鍵自增主鍵及字串主鍵在插入查詢分頁等效能

1.插入方面 UUID做主鍵,其他欄位相同,插入100萬條資料,用了3.5個小時 自增主鍵,其他欄位相同,插入相同的100萬條資料,用了16分鐘 有序增長的字串做主鍵,其他欄位相同,插入相同100萬條資料,用了7分鐘 2.查詢方面 UUID做主鍵,select count() fro

朱有鵬C語言高階---4.9.3--單鏈--從連結串列的頭部插入節點(3)

朱有鵬C語言高階---4.9.2--單鏈表--訪問單鏈表中各個節點的資料(1) 朱有鵬C語言高階---4.9.3--單鏈表--將建立節點的程式碼封裝成一個函式(2) 朱有鵬C語言高階---4.9.3--單鏈表--從連結串列的頭部插入節點(3)   從連結串列的尾部插入節點

Hive 分割槽初始歷史分割槽操作

在新建一張分割槽表或者對老分割槽表更改表結構後希望能保留老的分割槽的資料,因此就需要對新建的分割槽表進行初始化重刷歷史分割槽資料操作。   一、初始化重新整理方法1 事實表和維表均取最新分割槽資料,以事實表的業務動作事實發生日期作為歷史分割槽的分割槽欄位值。參考下面這段hive指令碼

Linux套接字與虛擬檔案系統(1):初始建立

引言    在Unix的世界裡,萬物皆檔案,通過虛擬檔案系統VFS,程式可以用標準的Unix系統呼叫對不同的檔案系統,甚至不同介質上的檔案系統進行讀寫操作。對於網路套接字socket也是如此,除了專屬的Berkeley Sockets API,還支援一些標準的檔案IO系統呼叫如read(v)、w

multiprocessing 程序物件屬性建立自己的程序類程序池技術程序間通訊

通常使用multiprocessing建立程序,父程序只用作程序的建立和回收,不做其他工作。 multiprocessing 程序物件屬性 p.start()  啟動程序 p.join()   回收程序 p.is_alive()  判斷程序生命週期狀態 返回

git初始建立專案

初始化和建立專案 有兩種方式,一種是 init, 另外一種是 clone init 在上面的例子中已經用過了,也就是進入專案所在的目錄,用 $ git init 即可。 Clone 一般是 從遠端伺服器克隆一個已有的版本倉庫 到本機,命令如下: $ git clone g

安裝VMware建立ubuntu linux虛擬機器使用Secure連線虛擬機器

在工作中經常使用linux伺服器,因為對linux操作還不是太熟悉,所以想在自己電腦上安裝VMware 建立linux虛擬機器,方便熟悉Linux 下載安裝過程 1.網上下載最新版VMware,按照

Qemu-KVM虛擬機器初始建立過程原始碼簡要分析(一)

    我們知道,Qemu-KVM實際上包括Qemu和KVM兩部分,那麼在建立以及初始化虛擬機器時,實際上也是在這兩部分進行的。     KVM實際上就是kvm核心模組,包括kvm.ko、kvm-intel.ko、kvm-amd.ko三部分,後兩部分分別對應Intel體系的

Qemu-KVM虛擬機器初始建立過程原始碼簡要分析(二)

    前面我們講了KVM核心層建立及初始化虛擬機器的一些工作過程,現在講一下Qemu層的流程以及與KVM核心層的配合過程。         Qemu層是從vl.c中的main()函式開始的,這裡通過在程式碼中新增一些註釋的方式來進行講解,中間省略了很多不重要或者我也沒有搞

【資料結構】順序單鏈、迴圈連結串列的插入刪除

寫在前面的 順序表 插入 刪除 定位 單鏈表 插入 刪除 總結 寫在前面的        在複習資料結構的過程中對於連結串列的操作總是容易忘記,時不時的就不知道具體的該怎麼