線性表的鏈式存貯及實現
#include <stdio.h>
#include <stdlib.h>
#define NN 5
#define MM 20
typedef int elemType ;
/**//************************************************************************/
/**//* 以下是關於線性錶鏈接儲存(單鏈表)操作的16種演算法 */
/**//***********************************************************************
struct sNode...{ /**//* 定義單鏈表結點型別 */
elemType data;
struct sNode *next;
};
/**//* 1.初始化線性表,即置單鏈表的表頭指標為空 */
void initList(struct sNode**hl)
...{
// 將hl地址對應的內容設定為00 00 00 00
*hl = NULL;
return;
}
/**//* 2.清除線性表L中的所有元素,即釋放單鏈表L中所有的結點,使之成為一個空表 */
void clearList(struct sNode**hl)
...{
/**//* cp和np分別作為指向兩個相鄰結點的指標 */
struct
cp =*hl;
/**//* 遍歷單鏈表,依次釋放每個結點 */
while(cp != NULL)...{
np = cp->next; /**//* 儲存下一個結點的指標 */
free(cp);
cp = np;
}
*hl = NULL; /**//* 置單鏈表的表頭指標為空 */
return;
}
/**//* 3.返回單鏈表的長度 */
int sizeList(struct sNode *hl)
...{
int count =0; /**//* 用於統計結點的個數
while(hl != NULL)...{
count++;
hl = hl->next;
}
return count;
}
/**//* 4.檢查單鏈表是否為空,若為空則返回1,否則返回0 */
int emptyList(struct sNode *hl)
...{
if(hl == NULL)...{
return1;
}else...{
return0;
}
}
/**//* 5.返回單鏈表中第pos個結點中的元素,若pos超出範圍,則停止程式執行 */
elemType getElem(struct sNode *hl, int pos)
...{
int i =0; /**//* 統計已遍歷的結點個數 */
if(pos <1)...{
printf("pos值非法,退出執行! ");
exit(1);
}
while(hl != NULL)...{
i++;
if(i == pos)...{
break;
}
hl = hl->next;
}
if(hl != NULL)...{
return hl->data;
}else...{
printf("pos值非法,退出執行! ");
exit(1);
}
}
/**//* 6.遍歷一個單鏈表 */
void traverseList(struct sNode *hl)
...{
// 前面連結串列初始化
while(hl != NULL)...{
printf("%5d", hl->data);
hl = hl->next;
}
printf("");
return;
}
/**//* 7.從單鏈表中查詢具有給定值x的第一個元素,若查詢成功則返回該結點data域的儲存地址,否則返回NULL */
elemType* findList(struct sNode *hl, elemType x)
...{
while(hl != NULL)
相關推薦
線性表的鏈式存貯及實現
#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#define NN 5#define MM 20typedef int elemType ;/**//***********************************
數據結構(一)線性表鏈式存儲實現
spl 原因 pause main -- 基本 無法 輸入 pen (一)前提 在前面的線性表順序存儲結構,最大的缺點是插入和刪除需要移動大量的元素,需要耗費較多的時間。原因:在相鄰兩個元素的存儲位置也具有鄰居關系,他們在內存中的位置是緊挨著的,中間沒有間隙,當然無法快速
2-線性表 鏈式存儲
介紹 list 尾插 內容 get iostream 小時 als 輸出 想起大二笨笨的,很仔細地扣每個代碼每個函數的細節,精確到用‘&’還是用‘*’ 把所有自己不明白的函數都搜了一遍 硬著頭皮去看,自己也沒有學多好。 鏈表剛學的時候弄了自己兩三天 明明是很簡單的內
線性表鏈式存儲
位置 頭插 回收 操作 sizeof .data link 鏈式 ++ 1 #include "stdio.h" 2 #include "string.h" 3 #include "ctype.h" 4 #include "stdlib.h" 5 #i
資料結構---線性表(鏈式佇列)
LinkQueue.h #ifndef __LINKQUEUE__H_ #define __LINKQUEUE__H_ //一些庫函式的標頭檔案包含 #include <string.h> #include <ctype.h> #include <malloc.h
佇列的鏈式儲存及實現
在佇列的順序儲存中,我們看到了迴圈佇列面臨著陣列可能溢位的問題。而對於佇列的鏈式儲存來說,則不存在佇列長度的問題。佇列的鏈式儲存結構是線上性錶鏈式儲存基礎上,添加了兩個指標:頭指標(front)和尾指
線性表——鏈式儲存結構合併操作
採取的結構和上一篇博文一致,均為單鏈表儲存結構。#include<iostream> #include<stdio.h> #include<stdlib.h> #define ElemType int #define Status
C語言單鏈表(線性表的鏈式儲存)實現程式碼
linklist.h //標頭檔案:資料 及 函式的宣告#ifndef __LINKLIST_H__ #define __LINKLIST_H__ #include <stdio.h> #include <stdlib.h> typedef in
資料學習之線性表的鏈式儲存C++實現
最近一直在中國大學MOOC網上選修了浙江大學的《資料結構》課程。第二週的課程講了線性表、堆疊和佇列三種抽象資料型別。接下來三篇部落格就這三種抽象資料型別進行總結和描述,並貼出C++實現的結構和主要的操作函式。 一、線性表抽象資料型別描述: 任何一種抽象資料型別的描述主要分為
線性表的鏈式儲存與實現
實現線性表的另一種方法是鏈式儲存,即用指標將儲存線性表中資料元素的那些單元依次串聯在一起。這種方法避免了在陣列中用連續的單元儲存元素的缺點,因而在執行插入或刪除運算時,不再需要移動元素來騰出空間或填補空缺。然而我們為此付出的代價是,需要在每個單元中設定指標來表示
線性表的鏈式表示與實現
#include<iostream> #include<malloc.h> using namespace std; typedef int ElemType; typedef int Status; #define OK 1 #define ER
2.3.1筆記-線性表的鏈式表示和實現
和順序表相比,連結串列儲存結構在實現插入、刪除的操作時,不需要移動大量資料元素(但不容易實現隨機存取線性表的第i個數據元素的操作)。所以,連結串列適用於經常需要進行插入和刪除操作的線性表,如飛機航班的乘客表等。 線性連結串列中單鏈表的結構(教材P28)
線性表--鏈表(PHP實現)
操作 ror head ret display OS tst color empty 上一篇文章寫了線性表的基本概念以及用C語言實現鏈表,有興趣的同學可以看看:線性表--鏈表(C語言實現)。 現在,我們來看看用PHP來實現鏈表。 我們都知道,鏈表由一個個結點組成。在c語言中
線性表——鏈表實現(單鏈表)
n) next lib AC 表結構 ini har == 是否 #include <iostream> #include <cstdio> #include <cstdlib> using namespace std; using
數據結構(二)線性表——鏈表
erro urn 找到 頭結點 tee 存在 結構 strong 函數 通常情況下,鏈接可分為單鏈表、雙向鏈表和循環鏈表三種常用類型。 一、單鏈表基本操作的實現 使用鏈式存儲結構來實現的線性表稱為鏈表。首元結點、頭結點、頭指針、空指針。 1.單鏈表的類型定義 typede
簡單的鏈式存儲實現原理
amp 是否 int args java 指向 spa ID oid 從《java編程思想中》閱讀到,作一下筆記 /** * @author zhouming * @date 2018\5\26 0026 12:39 * */ public class MyLin
php 鏈式操作的實現 學習記錄
html fun log name ret color mes logs 鏈式 php 面向對象中實現鏈式操作的關鍵部分:調用的方法中返回當前對象 ,從而實現鏈式操作; <?php namespace commom; class db { p
線性表及其應用C語言實現(資料結構複習最全筆記)
一、順序表的表示與實現 1.線性表的順序結構定義 #define LIST_INIT_SIZE 100 //線性表儲存空間的初始分配量 #define LISTINCREMENT 10 //線性表儲存空間的分配增量 typedef struct { ElemType* el
棧的鏈式儲存結構實現()
18.11.18 學習過之前的順序的棧了,這回介紹一下鏈式的棧 我們對棧進行操作時,通常都是在其棧頂進行,所以我們應該在鏈的頭部進行操作,我們之前學過的連結串列大多是有頭結點的,頭結點可以大大方便我們對連結串列的呼叫,現在,我們的這個鏈棧可以通過設定一個棧頂指標top來代替頭結點,或
串的鏈式表示和實現
用連結串列的方法來寫串真的是太麻煩了(下回更新一個用動態陣列寫的)。 下面是我簡單實現的鏈式串的幾個功能,沒辦法,資料結構老師不給程式碼,這些完全是我自己想的。 應該沒什麼邏輯上的錯誤,如有發現還請提出來。 #include <iostream> #include <