新聞中心
這篇文章主要為大家展示了“c#線性表中鏈表怎么用”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“c#線性表中鏈表怎么用”這篇文章吧。

網(wǎng)站建設(shè)、做網(wǎng)站介紹好的網(wǎng)站是理念、設(shè)計(jì)和技術(shù)的結(jié)合。成都創(chuàng)新互聯(lián)公司擁有的網(wǎng)站設(shè)計(jì)理念、多方位的設(shè)計(jì)風(fēng)格、經(jīng)驗(yàn)豐富的設(shè)計(jì)團(tuán)隊(duì)。提供PC端+手機(jī)端網(wǎng)站建設(shè),用營銷思維進(jìn)行網(wǎng)站設(shè)計(jì)、采用先進(jìn)技術(shù)開源代碼、注重用戶體驗(yàn)與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺化效果。
單鏈表也是一種鏈?zhǔn)酱嫒〉木€性表,用一組地址任意的存儲(chǔ)單元存放線性表中的數(shù)據(jù)元素。鏈表中的數(shù)據(jù)是以結(jié)點(diǎn)來表示的,以next指針指向下一個(gè)節(jié)點(diǎn)而鏈接起來,相比于順序表,鏈表有著快速增加,刪除節(jié)點(diǎn)的優(yōu)勢(shì),其節(jié)點(diǎn)的隨機(jī)訪問效率較低。
頭文件:
/*****************************************************************************************************
*Copyright:Yue Workstation
*
*FileName:LineTable.h
*
*Function:單鏈表相關(guān)數(shù)據(jù)定義和函數(shù)聲明
*****************************************************************************************************/
#ifndef SINGLE_LIST_H
#define SINGLE_LIST_H
#include "global.h"
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
int CreateSingleList(LinkList *L,int n);
void PrintSingleList(LinkList L);
int InsertSingleList(LinkList *L,int i,ElemType e);
int DeleteSingleList(LinkList *L,int i,ElemType *e);
int GetSingleListLength(LinkList L);
void DestroySingleList(LinkList *L);
#endif源文件:
/*****************************************************************************************************
*Copyright:Yue Workstation
*
*FileName:SingleList.c
*
*Function:單鏈表基本操作
*****************************************************************************************************/
#include "../inc/SingleList.h"
/****************************************************************************************************
*Function Name:CreateSingleList
*
*Function:創(chuàng)建一個(gè)單鏈表
*
*Parameter: L:單鏈表表頭,
* n:單鏈表長度
*
*Return Value:成功返回0,失敗返回-1
***************************************************************************************************/
int CreateSingleList(LinkList *L,int n)
{
int i = 0;
LinkList p1,p2;
*L = (LinkList)malloc(sizeof(LNode));
if(*L == NULL)
{
perror("malooc error\n");
return -1;
}
(*L)->data = 0;
(*L)->next = NULL;
p1 = *L;
p2 = *L;
for(i=1; i<=n; i++)
{
p1 = (LinkList)malloc(sizeof(LNode));
if(p1 == NULL)
{
perror("malooc error\n");
return -1;
}
p1->data = i;
p2->next = p1;
p2 = p1;
}
p2->next = NULL;
(*L)->data = n;
return 0;
}
/****************************************************************************************************
*Function Name:PrintSingleList
*
*Function:打印單鏈表表中的元素
*
*Parameter: L:單鏈表表頭
*
*Return Value:無
***************************************************************************************************/
void PrintSingleList(LinkList L)
{
L = L->next;
while(L)
{
printf("%d---",L->data);
L = L->next;
}
putchar('\n');
return ;
}
/****************************************************************************************************
*Function Name:InsertSingleList
*
*Function:在i位置插入一個(gè)元素e
*
*Parameter: L:單鏈表表頭,
* i:元素位置
* e:要插入的元素
*
*Return Value:成功返回0,失敗返回-1
***************************************************************************************************/
int InsertSingleList(LinkList *L,int i,ElemType e)
{
LinkList p1 = (*L)->next;
LinkList p2 = (*L)->next;
int j = 1;
while(p1 && jnext;
++j;
}
if(!p1 || j>i-1)
{
perror("Insert position error,the parameter i is error!\n");
return -1;
}
p2 = (LinkList)malloc(sizeof(LNode));
p2->data = e;
p2->next = p1->next;
p1->next = p2;
(*L)->data += 1;
return 0;
}
/****************************************************************************************************
*Function Name:DeleteSingleList
*
*Function:在制定位置刪除單鏈表中的元素
*
*Parameter: L:單鏈表表頭,
* i:元素位置
* e:要插入的元素
*
*Return Value: 成功返回0,失敗返回-1
***************************************************************************************************/
int DeleteSingleList(LinkList *L,int i,ElemType *e)
{
LinkList p1 = (*L)->next;
LinkList p2 = NULL;
int j = 1;
while(p1 && jnext;
++j;
}
if(!p1 || j>=i)
{
perror("Delete position error,the parameter i is error!\n");
return -1;
}
p2 = p1->next;
p1->next = p2->next;
*e = p2->data;
free(p2);
(*L)->data -= 1;
return 0;
}
/****************************************************************************************************
*Function Name:GetSingleListLength
*
*Function:獲取單鏈表長度
*
*Parameter: L:單鏈表表頭
*
*Return Value:單鏈表長度
*
***************************************************************************************************/
int GetSingleListLength(LinkList L)
{
if(L == NULL)
{
return -1;
}
return L->data;
}
/****************************************************************************************************
*Function Name:DestroySingleList
*
*Function:銷毀一個(gè)單鏈表
*
*Parameter: L:單鏈表表頭
*
***************************************************************************************************/
void DestroySingleList(LinkList *L)
{
LinkList p1 = *L;
LinkList p2 = *L;
while(p1 != NULL)
{
p2 = p1;
p1 = p1->next;
free(p2);
}
*L = NULL;
return;
} 以上是“c#線性表中鏈表怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站題目:c#線性表中鏈表怎么用
網(wǎng)頁網(wǎng)址:http://www.dlmjj.cn/article/ijddhs.html


咨詢
建站咨詢
