欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單向鏈表應用 單向鏈表創建,節點插入,增加,數據填充等源碼
[打印本頁]
作者:
wodehuaban
時間:
2017-1-3 21:16
標題:
單向鏈表應用 單向鏈表創建,節點插入,增加,數據填充等源碼
實現了單向鏈表的創建,節點插入,增加,數據填充等
圖片.PNG
(14.31 KB, 下載次數: 73)
下載附件
2017-1-3 21:16 上傳
源程序:
//單向鏈表基本操作,包括創建,整體賦值,整體讀取,單個賦值,單個讀取等
//已經在VC6.0上運行通過
#include<stdio.h>
#include<stdlib.h>
typedef struct DataBuf
{
char Byte8;
int Byte16;
long Byte32;
}DataBuf;
DataBuf readbuf;
//鏈表節點和要存儲的數據申明,要插入的數據都在這里添加即可
typedef struct SingleListNode
{
//要插入的鏈表數據值
char Byte8; //要插入數據(1byte)
int Byte16; //要插入數據(2byte)
long Byte32; //要插入數據(4byte)
struct SingleListNode *next; //每個鏈表的節點
}SingleListNode;
typedef SingleListNode *SingleList; //鏈表指針類型定義
/***********************************
** 名稱: SingleListNodeCreate
** 描述: 創建單向鏈表表頭節點
** 輸入參數: 無
** 輸出參數: 無
** 返回值: 鏈表頭指針
*************************************/
SingleList SingleListNodeCreate (void)
{
SingleList pHead = (SingleList)malloc(sizeof(SingleListNode)); //為鏈表表頭分配內存空間,創建后次鏈表表頭將永遠不會消失,地址賦給表頭指針
pHead->next=NULL; //指針頭賦值為空
return pHead; //返回鏈表表頭
}
/**************************************************************************
** 名稱: SingleListInsert
** 描述: 單向鏈表插入數據運算
** 輸入參數: SingleList pos: 要插入的鏈表表頭節點
byte : 要插入的數據
** 輸出參數: 無
** 返回值: 插入節點的指針
****************************************************************************/
SingleList SingleListInsert(SingleList pos, char byte8,int byte16,int byte32)
{
SingleList ptr = (SingleList)malloc(sizeof(SingleListNode)); //為新創建的鏈表節點分配內存
ptr-> Byte8 = byte8; //插入數據
ptr-> Byte16 = byte16;
ptr-> Byte32 = byte32;
ptr->next = pos->next; //指向下一個節點的
pos->next = ptr; //把創建的節點指針傳給下一個節點。用于移動節點
return ptr; //返回創建的鏈表節點的指針
}
/**************************************************************************
** 名稱: TargetNodeWriteData
** 描述: 向目標節點寫入數據
** 輸入參數: 鏈表頭指針,目標結點,要寫入的數據緩存區
** 輸出參數: 無
** 返回值: 無
***************************************************************************/
void WriteTargetNodeData(SingleList pHead,int TargetNode,DataBuf *writebuf)
{
unsigned int i;
SingleList pos = NULL;
pos = pHead;
for(i=0;i<=TargetNode;i++)
{
pos = pos->next;
}
pos->Byte8 = writebuf->Byte8;
pos->Byte16 = writebuf->Byte16;
pos->Byte32 = writebuf->Byte32;
}
/*************************************************************
** 名稱: ReadTargetNodeData
** 描述: 讀指定節點的數據到緩沖區
** 輸入參數: 單項鏈表頭指針,目標節點的號數
** 輸出參數: 無
** 返回值: 無
**************************************************************/
void ReadTargetNodeData(SingleList pHead,int TargetNode,DataBuf *readbuf)
{
unsigned int i;
SingleList pos = NULL;
pos = pHead; //頭節點賦值給
for(i=0;i<=TargetNode;i++)
{
pos = pos->next;
}
readbuf->Byte8 = pos->Byte8; //讀出來鏈表中的數據值
readbuf->Byte16 = pos->Byte16;
readbuf->Byte32 = pos->Byte32;
}
/************************************
** 名稱: SingleListFree
** 描述: 釋放鏈表占用的空間
** 輸入參數: pHead: 鏈表頭指針
** 輸出參數: 無
** 返回值: 無
*************************************/
void SingleListFree (SingleList pHead)
{
SingleList p = pHead; //得到鏈表表頭指針
while(p)
{
pHead = pHead->next; //節點順序移動
free(p); //釋放指到的對應節點的內存
p = pHead; //傳遞給下一個節點
}
}
//先往鏈表中插入數字
void main()
{
unsigned int i;
SingleList pos = NULL; //定義鏈表節點
SingleList pHead; //定義鏈表表頭節點
pHead = SingleListNodeCreate (); //創建鏈表表頭并且返回節點指針
pos = pHead; //頭節點賦值給節點
for(i=0;i<100;i++)
{
pos = SingleListInsert (pos,i,i*100,i*1000); //給對應鏈表節點中插入數據
}
pos= pHead; //再次回到鏈表頭節點
pos = pos->next;
while(pos)
{
printf("%d %d %d\n",pos->Byte8,pos->Byte16,pos->Byte32); //循環打印鏈表節點中的數據
pos = pos->next; //節點順序移動
}
printf("Output end..........................................\n");
ReadTargetNodeData(pHead,66,&readbuf); //讀出目標節點的數據
printf("%d %d %d\n",readbuf.Byte8,readbuf.Byte16,readbuf.Byte32); //打印出來
readbuf.Byte8=123; //重新給緩沖區賦值
readbuf.Byte16=234;
readbuf.Byte32=456;
WriteTargetNodeData(pHead,6,&readbuf); //寫入目標節點數據
ReadTargetNodeData(pHead,6,&readbuf); //讀出來目標節點的數據
printf("%d %d %d\n",readbuf.Byte8,readbuf.Byte16,readbuf.Byte32);
SingleListFree (pHead); //釋放節點占用的內存
while(1)
{;}
}
復制代碼
0.png
(60.17 KB, 下載次數: 69)
下載附件
2017-1-6 00:59 上傳
全部代碼下載:
單向鏈表應用_已在VC6.0上通過.rar
(189.55 KB, 下載次數: 11)
2017-1-3 21:15 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1