單向鍊錶
雙向鍊錶
迴圈鍊錶
插入刪除過程要注意,初始指標應指向鍊錶尾節點(若當插入到頭前時,找不到前驅節點)
當在更新尾節點時需要更新頭指標
鍊錶排序使用氣泡排序最為適合
資料結構 = 結構定義 + 結構操作
#include #include #include #include #define malloc2 my_malloc(size, __file__, __func__, __line__)
void* my_malloc(int size, const char* file, const char* func, int line)
return data;
}typedef struct vector vector;
vector* init(int n)
int expand(vector* v)
break;
}printf("%d\n");
return 1;
}int insert(vector* v, int x, int ind)
return 0;
}if (ind < 0 || ind > v->length)
for (int i = v->length - 1; i >= ind ; --i)
v->data[ind] = x;
v->length += 1;
return 1;
}int delete_element(vector *v, int ind)
for (int i = ind + 1; i < v->length; ++i)
v->length -= 1;
return 1;
}void output(vector* v)
printf(" ]");
printf("\n");
}void clear(vector* v)
int main()
printf("\n");
for (int i = 0; i < 10; ++i)
return 0;
}
#include #include #include typedef struct linknode linknode;
typedef struct linklist linklist;
linklist* init()
linknode* getnewnode(int data)
void clear(linklist* l)
free(l);
return;
}int insert(linklist* l, int data, int ind)
if (p == null) return 0;
linknode* new_node = getnewnode(data);
new_node->next = p->next;
p->next = new_node;
l->head = ret.next;
l->n += 1;
return 1;
}void output(linklist* l)
printf("null\n");
}int main()
clear(l);
return 0;
}
順序表與鍊錶
它是n個具有相同特性的資料元素的有限序列。線性表是一種在實際中廣泛使用的資料結構,常見的線性表 順序表 鍊錶 棧 佇列 字串 邏輯上連續,物理上不一定連續 儲存方式 通常是陣列或者鏈式結構 順序表是用一段實體地址連續的儲存單元依次儲存資料元素的線性結構,一般情況下採用陣列儲存。在陣列上完成資料的增刪...
順序表與鍊錶( )
鍊錶連續的儲存空間儲存任意元素。12 345結構定義 1 size 9 2 length 5 3 data type include include typedef struct vector vector void init vector vector,int size void clear ve...
順序表與鍊錶
順序表 1.實現 順序表的實現 typedef struct lnode list struct lnode list ptrl 2.建立空的順序表 建立空順序表 list buildlist 3.查詢元素 查詢元素 intfind elementtype e,list ptrl 4.插入元素 插入...