久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3337|回復: 0
收起左側

單向鏈表應用 單向鏈表創建,節點插入,增加,數據填充等源碼

[復制鏈接]
ID:159275 發表于 2017-1-3 21:16 | 顯示全部樓層 |閱讀模式
實現了單向鏈表的創建,節點插入,增加,數據填充等
圖片.PNG

源程序:
  1. //單向鏈表基本操作,包括創建,整體賦值,整體讀取,單個賦值,單個讀取等
  2. //已經在VC6.0上運行通過
  3. #include<stdio.h>
  4. #include<stdlib.h>
  5. typedef struct DataBuf
  6. {
  7.    char  Byte8;
  8.    int   Byte16;
  9.    long  Byte32;
  10. }DataBuf;
  11. DataBuf readbuf;
  12. //鏈表節點和要存儲的數據申明,要插入的數據都在這里添加即可
  13. typedef struct SingleListNode
  14. {
  15.    //要插入的鏈表數據值
  16.    char         Byte8;               //要插入數據(1byte)
  17.    int          Byte16;              //要插入數據(2byte)
  18.    long         Byte32;              //要插入數據(4byte)
  19.    struct SingleListNode *next;      //每個鏈表的節點
  20. }SingleListNode;
  21. typedef SingleListNode *SingleList;  //鏈表指針類型定義
  22. /***********************************
  23. ** 名稱:      SingleListNodeCreate
  24. ** 描述:       創建單向鏈表表頭節點
  25. ** 輸入參數:   無
  26. ** 輸出參數:   無
  27. ** 返回值:     鏈表頭指針
  28. *************************************/
  29. SingleList SingleListNodeCreate (void)
  30. {
  31.    SingleList pHead = (SingleList)malloc(sizeof(SingleListNode));  //為鏈表表頭分配內存空間,創建后次鏈表表頭將永遠不會消失,地址賦給表頭指針
  32.    pHead->next=NULL;     //指針頭賦值為空
  33.    return pHead;         //返回鏈表表頭
  34. }
  35. /**************************************************************************
  36. ** 名稱:       SingleListInsert
  37. ** 描述:       單向鏈表插入數據運算
  38. ** 輸入參數:   SingleList pos: 要插入的鏈表表頭節點
  39.                byte  :    要插入的數據
  40.                           
  41. ** 輸出參數:   無
  42. ** 返回值:     插入節點的指針
  43. ****************************************************************************/
  44. SingleList SingleListInsert(SingleList pos, char byte8,int byte16,int byte32)
  45. {
  46.         SingleList ptr = (SingleList)malloc(sizeof(SingleListNode)); //為新創建的鏈表節點分配內存
  47.         ptr-> Byte8    = byte8;        //插入數據
  48.         ptr-> Byte16   = byte16;              
  49.         ptr-> Byte32   = byte32;
  50.         ptr->next      = pos->next;    //指向下一個節點的
  51.         pos->next      = ptr;          //把創建的節點指針傳給下一個節點。用于移動節點
  52.         return ptr;    //返回創建的鏈表節點的指針
  53. }
  54. /**************************************************************************
  55. ** 名稱:      TargetNodeWriteData
  56. ** 描述:       向目標節點寫入數據
  57. ** 輸入參數:   鏈表頭指針,目標結點,要寫入的數據緩存區
  58. ** 輸出參數:   無
  59. ** 返回值:     無
  60. ***************************************************************************/
  61. void WriteTargetNodeData(SingleList pHead,int TargetNode,DataBuf *writebuf)
  62. {
  63.     unsigned int i;
  64.     SingleList  pos = NULL;
  65.     pos = pHead;
  66.     for(i=0;i<=TargetNode;i++)
  67.         {
  68.            pos = pos->next;
  69.         }
  70.         pos->Byte8 = writebuf->Byte8;
  71.     pos->Byte16 = writebuf->Byte16;
  72.     pos->Byte32 = writebuf->Byte32;
  73. }

  74. /*************************************************************
  75. ** 名稱:      ReadTargetNodeData
  76. ** 描述:       讀指定節點的數據到緩沖區
  77. ** 輸入參數:   單項鏈表頭指針,目標節點的號數
  78. ** 輸出參數:   無
  79. ** 返回值:     無
  80. **************************************************************/
  81. void ReadTargetNodeData(SingleList pHead,int TargetNode,DataBuf *readbuf)
  82. {
  83.    unsigned int i;
  84.    SingleList pos = NULL;
  85.    pos = pHead;      //頭節點賦值給
  86.    for(i=0;i<=TargetNode;i++)
  87.    {
  88.       pos = pos->next;   
  89.    }
  90.    readbuf->Byte8 = pos->Byte8;       //讀出來鏈表中的數據值
  91.    readbuf->Byte16 = pos->Byte16;
  92.    readbuf->Byte32 = pos->Byte32;
  93. }
  94. /************************************
  95. ** 名稱:       SingleListFree
  96. ** 描述:       釋放鏈表占用的空間
  97. ** 輸入參數:   pHead: 鏈表頭指針
  98. ** 輸出參數:   無
  99. ** 返回值:     無
  100. *************************************/
  101. void SingleListFree (SingleList pHead)
  102. {
  103.         SingleList p = pHead;    //得到鏈表表頭指針
  104.         while(p)
  105.         {
  106.            pHead = pHead->next;  //節點順序移動
  107.            free(p);              //釋放指到的對應節點的內存
  108.            p = pHead;            //傳遞給下一個節點
  109.         }
  110. }
  111. //先往鏈表中插入數字
  112. void main()
  113. {
  114.         unsigned int i;
  115.     SingleList  pos = NULL;  //定義鏈表節點
  116.         SingleList pHead;        //定義鏈表表頭節點
  117.         
  118.         pHead = SingleListNodeCreate ();   //創建鏈表表頭并且返回節點指針
  119.         pos = pHead;    //頭節點賦值給節點
  120.         for(i=0;i<100;i++)
  121.         {
  122.            pos = SingleListInsert (pos,i,i*100,i*1000);         //給對應鏈表節點中插入數據
  123.         }
  124.         pos= pHead;             //再次回到鏈表頭節點
  125.         pos = pos->next;
  126.         while(pos)
  127.         {
  128.             printf("%d %d %d\n",pos->Byte8,pos->Byte16,pos->Byte32);      //循環打印鏈表節點中的數據        
  129.                 pos = pos->next;     //節點順序移動
  130.         }
  131.     printf("Output end..........................................\n");
  132.         ReadTargetNodeData(pHead,66,&readbuf);   //讀出目標節點的數據
  133.     printf("%d %d %d\n",readbuf.Byte8,readbuf.Byte16,readbuf.Byte32);  //打印出來
  134.         readbuf.Byte8=123;  //重新給緩沖區賦值
  135.         readbuf.Byte16=234;
  136.         readbuf.Byte32=456;
  137.     WriteTargetNodeData(pHead,6,&readbuf);    //寫入目標節點數據
  138.     ReadTargetNodeData(pHead,6,&readbuf);     //讀出來目標節點的數據
  139.     printf("%d %d %d\n",readbuf.Byte8,readbuf.Byte16,readbuf.Byte32);
  140.     SingleListFree (pHead);   //釋放節點占用的內存
  141.         while(1)
  142.         {;}
  143. }

復制代碼
0.png

全部代碼下載:
單向鏈表應用_已在VC6.0上通過.rar (189.55 KB, 下載次數: 11)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精彩视频一区二区三区 | 九九热这里只有精品在线观看 | 高清一区二区 | 国产精品激情 | 国产激情精品一区二区三区 | 99亚洲 | 在线免费激情视频 | 亚洲免费一区二区 | 热久久国产 | 天天操夜夜爽 | 色综合一区二区三区 | 精品一区二区三区中文字幕 | www.4hu影院 | 亚洲九九| 视频1区 | 综合久久亚洲 | 成人在线免费观看 | 欧美欧美欧美 | 青青草一区 | 91精品久久久久久久久久 | 亚洲日韩中文字幕一区 | 国产不卡一区 | 国产福利视频 | 国产综合精品一区二区三区 | 国产一区精品 | 日韩欧美在线视频观看 | 嫩草懂你的影院入口 | 国产成人精品一区二区三区视频 | 成人小视频在线免费观看 | av不卡一区| 韩日在线 | 午夜精品一区 | 国产97视频在线观看 | 欧美日韩大片 | 免费黄色片在线观看 | 日韩成人免费av | 男女网站免费 | 在线午夜 | 国产精品久久久久久久久久免费看 | 天堂色 | 欧美在线视频网 |