摘要: 当没有指针和对象时,应该怎么实现链表呢?参考算法导论,给出两种实现方式:1、多重数组表示对于双向链表而言,由三个长度一样的数组来表示,分别为Prev[n],Next[n],Value[n]。下标相同的三个数组元素组成一个链表元素。Value[n]里存放的是链表元素的值,Prev[n]和Next[n]里存放的是数组的索引,表示该链表元素的前面和后面分别是什么。链表中的第一个元素的前缀为空,因此可以在Prev数组相应位置存放-1,最后一个元素的后缀同样操作。链表头元素所在数组的索引存放在单独的一个变量中。这个多重数组表示的链表为2、单数组表示在足够大的一维数组中,链表的每个元素占据一组连续位置,在 阅读全文
posted @ 2011-12-09 19:27 Cavia 阅读(756) 评论(0) 推荐(0) 编辑
摘要: 无聊写了一个链表。。ListTable 1 typedef struct Node 2 { 3 int value; 4 struct Node* prev; 5 struct Node* next; 6 }iNode; 7 8 9 typedef struct List10 {11 iNode* head;12 }ListTable;13 14 15 iNode* ListSearch(ListTable* table,int x)16 {17 iNode* node=table->head;18 while(node!=NULL&&nod... 阅读全文
posted @ 2011-12-09 18:42 Cavia 阅读(288) 评论(0) 推荐(0) 编辑