91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c#線性表中鏈表怎么用

發布時間:2022-01-15 14:27:54 來源:億速云 閱讀:123 作者:小新 欄目:編程語言

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

單鏈表也是一種鏈式存取的線性表,用一組地址任意的存儲單元存放線性表中的數據元素。鏈表中的數據是以結點來表示的,以next指針指向下一個節點而鏈接起來,相比于順序表,鏈表有著快速增加,刪除節點的優勢,其節點的隨機訪問效率較低。

頭文件:

/***************************************************************************************************** 
 *Copyright:Yue Workstation 
 * 
 *FileName:LineTable.h 
 * 
 *Function:單鏈表相關數據定義和函數聲明 
 *****************************************************************************************************/ 

#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:創建一個單鏈表 
 * 
 *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位置插入一個元素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 && j<i-1) 
    { 
        p1 = p1->next; 
        ++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 && j<i-1) 
    { 
        p1 = p1->next; 
        ++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:銷毀一個單鏈表 
 * 
 *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#線性表中鏈表怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

文登市| 岱山县| 肥东县| 古浪县| 濉溪县| 洛宁县| 苏尼特左旗| 长岛县| 宝山区| 天柱县| 临清市| 太白县| 乳山市| 靖远县| 三穗县| 吉木萨尔县| 大渡口区| 阿勒泰市| 文登市| 城固县| 二连浩特市| 来凤县| 万山特区| 历史| 花莲县| 敦煌市| 德钦县| 上林县| 崇州市| 桐城市| 九台市| 海原县| 渝北区| 禹城市| 女性| 彭州市| 鹤岗市| 怀安县| 富源县| 伊金霍洛旗| 天镇县|