鍊錶的基本概念
表頭結點
:
鍊錶中的第乙個結點
,包含指向第乙個資料元素的指標以及
鍊錶自身的一些資訊
資料結點
:
鍊錶中代表資料元素的結點
,包含指向下乙個資料元素的指
針和資料元素的資訊
尾結點
:
鍊錶中的最後乙個資料結點
,其下一元素指標為空
,表示無
後繼
標頭檔案:
#ifndef _linklist_h_
#define _linklist_h_
//採用資料封裝的方式,防止在主函式修改其中的屬性值(有點點像物件導向中的私有屬性)
typedef void linklist;
typedef struct linklistnode //宣告指標域
linklistnode;
//typedef struct _tag_linklistnode linklistnode;
//struct _tag_linklistnode
//;//建立線性表
linklist * linklist_create();
//銷毀線性表
void linklist_destroy(linklist * list);
void linklist_clear(linklist* list);
int linklist_length(linklist* list);
int linklist_insert(linklist* list, linklistnode* node, int pos);
linklistnode* linklist_get(linklist* list, int pos);
linklistnode* linklist_delete(linklist* list, int pos);
#endif
原始檔:
// 鏈式線性表.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include #include #include "linklist.h"
typedef struct //定義頭結點
tlinklist;
struct value //定義資料結構體型別
;int _tmain(int argc, _tchar* argv)
while( linklist_length(list) > 0 )
linklist_destroy(list);
system("pause");
return 0;
}//建立
linklist * linklist_create()
return list;
}//銷毀
void linklist_destroy(linklist * list)
//清空
void linklist_clear(linklist* list)
}//獲得長度
int linklist_length(linklist* list)
return len;
}//插入
int linklist_insert(linklist* list, linklistnode* node, int pos)
node->next = current->next;
current->next = node;
++(slist->len);
ret = 1;
} return ret;
}//獲得結點
linklistnode* linklist_get(linklist* list, int pos)
resnode = current->next;
} return resnode;
}//刪除
linklistnode* linklist_delete(linklist* list, int pos)
resnode = current->next;
current->next = resnode->next;
} slist->len--;
return resnode;
}
執行結果:
543
21刪除了:5
刪除了:4
刪除了:3
刪除了:2
刪除了:1
請按任意鍵繼續. . .
如有錯誤,望不吝指出。
迴圈鍊錶的實現與操作 C語言實現
迴圈鍊錶是另一種形式的鏈式存貯結構。它的特點是表中最後乙個結點的指標域指向頭結點,整個鍊錶形成乙個環。迴圈鍊錶的操作 1,迴圈鍊錶的新操作 2,獲取當前游標指向的資料元素 3,將游標重置指向鍊錶中的第乙個資料元素 4,將游標移動指向到鍊錶中的下乙個資料元素 5,直接指定刪除鍊錶中的某個資料元素 ci...
雙向鍊錶的實現與操作 C語言實現
雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。單鏈表的侷限 1,單鏈表的結點都只有乙個指向下乙個結點的指標 2,單鏈表的資料元素無法直接訪問其前驅元素 3,逆序訪問單鏈表中...
C語言實現鍊錶基本操作
之前說過順序表的基本操作。顯然,順序表有乙個很大的缺點,就是做插入刪除操作的時候,往往要做很大量的元素移動的操作。這裡我們討論另外一種線性表的表示方法 鏈式儲存結構。由於它不需要邏輯上的相鄰的元素在物理位置上也相鄰,因此它沒有順序儲存結構所具有的弱點,但是同時也失去了順序表的可隨機訪問的有點。inc...