CUDA鍊錶

2021-06-27 02:48:22 字數 1581 閱讀 1958

照著cuda sample裡面的newdelete程式寫乙個cuda的在裝置上使用的鍊錶(由於要求必須要用鍊錶。。。)

如果鍊錶正確的話應該是輸出乙個5*5的中間一列是-1,其他四列是0的矩陣

#ifndef _list_

#define _list_

#if defined(__x86_64) || defined(amd64) || defined(_m_amd64)

typedef unsigned long long int pointer_int_t;

#else

typedef unsigned int pointer_int_t;

#endif

template

class singlelinkelement

__device__

~singlelinkelement()

__device__

void setnext(singlelinkelement* next)

__device__

void setdata(t x, t y)

__device__

void addnext(singlelinkelement* next)

__device__

singlelinkelement* getnext()

__device__

t getx()

__device__

t gety()

/*__device__

t operator() ()*/

private:

t m_data_x;

t m_data_y;

singlelinkelement* m_next;

};class link

__device__ void setdata(singlelinkelement** data)

__device__ void setnext(link * next)

__device__ singlelinkelement** getdata()

__device__ link * getnext()

__device__ void addnext(link * tail)

__device__ void setdepth(int depth)

__device__ int getdepth()

private:

singlelinkelement** m_data;

link * m_next;

int m_depth;

};class queue

__device__ link * pop()

return old_top;

}__device__ void push(singlelinkelement** data,int depth)

__device__ int getsize()

__device__ link * gettop()

private:

int m_size;

link * m_top;

};#endif

**:

鍊錶 環形鍊錶

環形鍊錶也叫迴圈鍊錶 可以是雙鏈表 也可以是單鏈表 操作原理和單鏈表差不多,只是最後乙個節點不在指向空 null 而是頭 head 這裡以單鏈表舉例 description 環形鍊錶 author lzq date 2018 11 3 20 46 version 1.0 public class a...

鍊錶 初識鍊錶

鍊錶 前言 小弟初學資料結構,有錯誤的地方望大家不吝賜教 認識鍊錶 列表相比陣列更具有優勢,鍊錶不同於資料和其他資料結構依靠位置來進行訪問或者其他操作,如陣列是依靠下表來運算元據。而鍊錶是通過關係來尋找或者運算元據。鍊錶的特性 插入 和 刪除 效率高,只需要變更指向的鏈結點即可。但是隨即訪問操作的效...

鍊錶(鍊錶建立)

先找到了一些與單鏈表相關的概念 2.指標域 ai元素儲存指向後繼元素儲存位置的資訊 3.結點 包含資料域和指標域 4.單鏈表 每個結點只包含乙個指標域的線性表 5.頭指標 要素 鍊錶中第乙個結點的儲存位置 線性表最後乙個結點指標為空 6.頭結點 非要素 單鏈表第乙個結點前附設乙個結點 其指標域指向第...