基礎資料結構

2021-05-27 11:22:22 字數 1645 閱讀 4909

(1)雙鏈表。下面是c++版本的實現。

#include "stdafx.h"

#include //結構體

typedef struct nodedlink;

//初始化

void dlist(dlink *&dl)

//求長度

int dlength(dlink *dl)

return i;

}//查詢

dlink *dsearch(dlink *dl,int x)

//插入

int dinsert(dlink *dl,int x,int i)

s->next=p->next; // a)

s->prior=p; // b)

if(p->next!=null)

p->next->prior=s; // c)

p->next=s; // d)

return 1;

}//刪除

int ddelete(dlink *dl,int i)

q=p->next;

p->next=q->next; // e)

if(q->next!=null)

q->next->prior=p; // f)

free(q);

return 1;

}int _tmain(int argc, _tchar* argv)

其中插入和刪除演算法可以參照下圖

其他的像單鏈表是雙鏈表的低階版本,只需要在上圖中省去一些步驟就行。而迴圈雙鏈表的結構類似,不在重複。

(2)棧

這個比較簡單,一般用的是陣列,也有用單鏈表的。

(3)佇列。下面是環形佇列的c++實現

//結構

const int queuesize=20; //佇列的容量

typedef struct sqqueue

sqqueue;

//初始化

void initqueue(sqqueue &qu)

//入隊

int enqueue(sqqueue &sq,elemtype x)

//出隊

int dequeue(sqqueue &sq,elemtype &x)

//取隊頭元素

int gethead(sqqueue &sq,elemtype &x)

環形佇列元素個數用公式(rear+queuesize-front)%queuesize求得。

順序佇列一般很少用,因為浪費空間,當然有時候還是可以用的,因為操作簡單。

佇列還有鏈式的儲存結構。

(4)總結:在用上面結構的時候,最好的方法還是畫圖。

資料結構基礎

資料結構定義 定義 一 資料元素集合 也可稱資料物件 中各元素的關係。定義 二 相互之間存在特定關係的資料元素集合。資料結構的種類 1 集合 2 線性結構 3 樹形結構 4 圖狀結構 或網狀結構 資料結構的形式定義 資料結構名稱 d,s 其中d為資料元素的有限集,s是d上關係的有限集 邏輯結構 資料...

資料結構基礎

邏輯結構 描述資料元素之間的邏輯關係。物理結構 資料結構在計算機中的表示 映像 又稱儲存結構。它包含資料元素的表示和關係的表示。用乙個可以由若干位組合形成的乙個位串表示乙個資料元素,稱這個位串為元素或節點。當資料元素由若干資料項組成時,位串中對應於各個資料項的子位串稱為資料域。資料元素之間的關係在計...

資料結構基礎

用程式解決問題時,往往需要將具體問題抽象為數學模型,再用具體演算法進行解決,這個抽象數學模型的過程即位分析問題的過程。程式描述數學模型不再是數學方程式,而是採用資料結構。一 資料結構的基本相關概念 什麼是資料結構?資料結構是基本元素,及其之間存在的一種或多種特定關係的集合。根據不同的資料關係,可以採...