| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10310 人关注过本帖, 1 人收藏
标题:分享:通用链表(有任何问题或建议,请提出)(5.2新增两个函数)
取消只看楼主 加入收藏
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
Great_Link()我编辑了一下,蹉跎了好些岁月。
不过……还是有收获,看注释。

程序代码:
void Creat_Link(PList* p,int size)
{
    *p = ( PList )malloc( LEN_List );
    assert( NULL != *p);
    memset( *p, 0, LEN_ListNode );


    ( *p )->size = size;


    ( *p )->rear = ( PListNode )malloc( LEN_ListNode );
    //写成:
    //( *p )->front = ( PListNode )malloc( LEN_ListNode );
    //不是就可以了么?
    assert( NULL != ( *p )->rear );
    ( *p )->front = ( *p )->rear;//这一行是多余的吧?
    memset( ( *p )->front, 0, LEN_ListNode );


    ( *p )->rear->next = ( PlistNode )malloc( LEN_ListNode );
    assert( NULL != ( *p )->rear->next );
    ( *p )->rear = ( *p )->rear->next;//因为这一行( *p )->rear的指向已经改变了
    ( *p )->front->next = ( *p )->rear;
    memset( ( *p )->rear, 0, LEN_ListNode );
    

    ( *p )->rear->prior = ( *p )->front;
}


[此贴子已经被作者于2017-4-29 21:10编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-29 20:56
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 37楼 九转星河
只能以后找时间来学习下了,今天上了一整天的班,思维混乱中……

[此贴子已经被作者于2017-4-30 19:36编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-30 19:25
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 39楼 九转星河
说出来你都不信,我恰好这两天也想到链表排序的方法,甚至可以用插入排序、快速排序等等排序算法。
看来我要去找个优秀的排序算法抄一抄了。

不过一切都要等闲的时候来实现,工作忙起来,一下班什么都不想干了。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-30 20:26
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
以下是引用九转星河在2017-6-4 21:42:25的发言:

看到Java链表封装还有两个removeFirst函数和removeLast函数
大意就是删除开头(结尾)节点并返回该节点中的数据~

于是就参照其功能写了两个

Remove_Rear和Remove_Front函数~

和Del_Rear Del_Front的区别是

前者是返回删除节点的数据~后者是返回删除后下一个节点的数据~


如果这两个函数是这两个功能的话,不需要单独写一个函数,我觉得,直接修改删除节点的返回值就行了。

删除首节点,我已经实现了。但是我写的是不返回,返回首节点有一个单独的函数。这样我觉得更灵活一些。

删除尾节点,我的结构,实现起来有遍历的麻烦。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-04 21:45
快速回复:分享:通用链表(有任何问题或建议,请提出)(5.2新增两个函数)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038906 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved