首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

结构体数组怎么删除和排序

2013-01-21 
结构体数组如何删除和排序?听说要用链表做比较好,还没学到链表,自己看看不明白。知道的麻烦指点指点[解决办

结构体数组如何删除和排序?
听说要用链表做比较好,还没学到链表,自己看看不明白。
知道的麻烦指点指点
[解决办法]
数组还是链表,只有一种实现方式,各有各的稳定优缺点。
链表删除,插入会比较方便
数组则会浪费很多拷贝的时间
[解决办法]
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

热点排行