線性結構的特點: 在資料元素的非空有限集中。
線性表:n個資料元素的有限序列。
當資料元素由若干個資料項(item)組成時,稱記錄,含有大量記錄的線性表稱檔案。
c語言實現線性表
#include
#include
#define nullelem 0
typedef
int elem;
// 定義結構型別
typedef
struct arraylist;
intisequalelem
( elem e1, elem e2 )
return0;}
// 構造空的線性表
void
initarraylist
(arraylist *list , int size)
// 新增項操作
intaddelem
(arraylist *list , elem elem)
// 插入項操作
intinsertelem
(arraylist *list , elem elem , int index )
*(list->data+index) = elem;
list->size++;
return
0; }
// 刪除目標索引的項操作
intremoveindex
(arraylist *list, int index)
*(list->data+(list->size-1)) = nullelem; // 最後一項置零
list->size--;
return0;}
// 刪除項操作
void
removeelem
(arraylist *list, elem elem , int removeall)}}
c語言實現線性鍊錶
實現的是雙向鍊錶,很久之前寫的了,注釋不多,但也好理解。
#include
"stdio.h"
#include
"stdlib.h"
// 定義操作的元素型別
struct
elem ;
// 定義鍊錶結構
typedef
struct linklist;
// 初始化鍊錶
void
initlinklist
( linklist *list )
// 獲取表長
intgetsizel
(linklist *list)
// 新增元素
void
addlast
(linklist *list,struct elem *elem)
else
list->size++;
}struct elem * getelem
(linklist *list, int index)
elem = elem->prev;
}} else
elem = elem->next;}}
}int
getvalue
(linklist *list, int index)
// 移除元素
void
removeindexl
(linklist *list, int index)
list->size--;
}void
removeeleml
(linklist *list, struct elem *e)
elem->prev->next = elem->next;
elem->next->prev = elem->prev;
if( list->first == elem )
list->size--;
}
資料結構 線性表 2
package com.wjy.data structure.linearlist.common public inte ce nodepackage com.wjy.data structure.linearlist.common 單鏈表結點定義 public class slnode imple...
資料結構2 線性表
什麼是線性表 邏輯上具有線性結構的儲存結構 線性表的特點 線性表中每個元素型別相同 線性表分類 根據物理結構,分為順序儲存和鏈式儲存 順序儲存 順序表 順序表的特點 快速隨機訪問,查詢和修改效率高,增刪效率低 順序表的實現 1 定義順序表頭,2 順序表初始化,3 實現順序表的操作 順序表的操作 增加...
大話資料結構 線性表 2
線性表的順序儲存結構最大的缺點是插入和刪除時需要移動大量資料,這顯然就需要消耗時間。本節討論的鏈式儲存結構可以很好滴解決這個問題。線性表的鏈式儲存結構的特點是用一組任意的儲存單元儲存線性表的資料元素,這些儲存單元可以使連續的,也可以是不連續的。這就意味著,這些資料元素可以存在記憶體未被占用的任意位置...