新聞中心

        EEPW首頁 > 嵌入式系統 > 牛人業話 > 寫好C語言程序的“三板斧”

        寫好C語言程序的“三板斧”

        作者:Machinnneee 時間:2015-11-09 來源:電子產品世界 收藏

          a、 保存初始的“猴子”圓圈參數。

        本文引用地址:http://www.104case.com/article/282515.htm

          /* 保存節點總數 */

          total = n;

          printf("nthe out num:");

          q = head;

          為什么要保留這個呢?首先要控制猴子數目,所以保留了全部的數目。其次用q(qurry)來保留剔除猴子前面的鏈表,并連接剔除猴子后的鏈表。這樣,完成了循環鏈表的元素刪除。

          b、 猴子查數。

          猴子查數是整個程序的關鍵,需要完成以下任務:a、找到開始的“猴子”數;b、刪除該“猴子”;c、將刪除掉的循環鏈表首尾連接起來。

          /* 只剩一個節點時停止循環 */

          while (total != 1)

          {

          /* 報數過程,p指向要刪除的節點 */

          for (i = 1; i < m; i++)

          {

          p = p->next;

          }

          /* 打印要刪除的節點序號 */

          printf("[%d] ", p->data);

          /* q 指向 p 節點的前驅 */

          while (q->next != p)

          {

          q = q->next;

          }

          /* 刪除 p 節點 */

          q->next = p->next;

          /* 保存被刪除節點指針 */

          s = p;

          /* p 指向被刪除節點的后繼 */

          p = p->next;

          /* 釋放被刪除的節點 */

          free(s);

          /* 節點個數減一 */

          total--;

          }

          /* 打印最后剩下的節點序號 */

          printf("nnthe last num:[%d] nn", p->data);

          free(p);

          }

          通過以上數據運算,可以完成相應鏈表元素的刪除,這或許就是程序的魅力所在。

          第三把斧,使用的指針。

          比如本程序的鏈表指針的定義,p,s,q。

          linklist *head, *p, *s, *q;

          我們知道,指針操作不但可以減少數據操作需要的內存,還可以提高程序的運行速度,這在另一方面達到了我們的“第三把斧”的目的。

          指針的優勢,或許在本程序中表現的不明顯,在大量數據和對操作速度要求比較敏感的情況下會很明顯,比如linux內核中,就會有很好的體現。

          總之,對于嵌入式工程師,不但能設計出好的硬件電路,如果也能寫出好的軟件程序就會讓我們的生活更加美好。工程師們,耍起這“的三把斧”!


        上一頁 1 2 下一頁

        關鍵詞: C語言

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东阳市| 澄城县| 衢州市| 民权县| 罗田县| 黎平县| 隆林| 巴青县| 浪卡子县| 遵义县| 红原县| 安岳县| 新昌县| 禄劝| 德阳市| 淅川县| 汪清县| 兴化市| 西和县| 宾阳县| 诸暨市| 都匀市| 大安市| 三门峡市| 乌审旗| 浙江省| 资兴市| 博白县| 泽州县| 肥乡县| 定南县| 巴青县| 台湾省| 和政县| 海安县| 恭城| 夹江县| 西充县| 太湖县| 沁水县| 北碚区|