结构体数组如何删除和排序?
听说要用链表做比较好,还没学到链表,自己看看不明白。
知道的麻烦指点指点
[解决办法]
数组还是链表,只有一种实现方式,各有各的稳定优缺点。
链表删除,插入会比较方便
数组则会浪费很多拷贝的时间
[解决办法]
struct data
{
int data1;
int data2;
int data3;
};
//single link
struct link_node {
struct data* data;
struct link_node * next;
};
typedef struct link_node* link;
...
泳表,最重要一,理解指。
[解决办法]
结构体数组可以说是线性表。线性表就两种方式,一种是连续存储的一种是非连续存储的:
如果是连续存储(即数组),排序一般需要进行数据复制,删除即把相应储存空间置空(空间仍在,只不过没有数据),这样的话可以随机访问,但灵活性不强。
如果是非连续存储(即链表),排序就是修改一个结点的前趋和后继,删除就是直接释放结点内存(空间不存在),这样的话灵活性很强,但不能随机访问。
[解决办法]
建议先找本《数据结构(C语言版)》的书看看,有些基础的东西还是得学习的。
[解决办法]
删除:建立一个新的数组,并复制其余(不包括想删除的那个)的数据到这个数组。
排序:参考冒泡排序。
[解决办法]
http://blog.csdn.net/ksly_tkol/article/details/8220267