C++資料結構連結串列的基本操作

大雄45發表於2021-11-22
導讀 這篇文章主要為大家介紹了C++資料結構連結串列基本操作的示例過程有需要的朋友可以借鑑參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪

C++資料結構連結串列的基本操作C++資料結構連結串列的基本操作

首先建立好一個節點
typedef struct node {
    int date;
    struct node* next;
}*PNODE;
 PNODE creatnode(int date )
{
    PNODE newnode = (PNODE)malloc(sizeof(struct node));
    assert(newnode);
    newnode->next = NULL;
    newnode->date = date;
    return newnode; 
}
其次建立一個統計節點屬性
struct List {
    struct node* pronode;//這只是一個型別
    struct node*tailnode;
    int size;
};
//建立統一連結串列屬性的list  
//用來統計連結串列的(size)節點數
//head和tail用來統計連結串列的表頭和表尾
struct List* creatlist()
{
    struct List* list = (struct List*)malloc(sizeof(struct List));
    assert(list);
    list->pronode = NULL;
    list->tailnode = NULL;
    list->size = 0;//初始化
    return  list;
  
}
增加節點
用表頭插入的方法插入節點
void insertbyhead(struct List* list,int date)
{
    PNODE newnode = creatnode(date);
    if (list->size == 0)
    {
        list->pronode = list->tailnode = newnode;
    }
    else
    {
        newnode->next = list->pronode;
        list->pronode = newnode;
    }
    list->size++;
}

刪除節點
//表頭刪除
void deletehead(struct List* list)
{
    PNODE next = list->pronode->next;
    free(list->pronode);
    list->pronode = next;
}
//表尾刪除
void deletetail(struct List* list)
{
    PNODE pmove = list->pronode;//定義一個移動指標
                                //目的找到表尾指標
    if (list->size == 0)
    {
        printf("無法刪除");
        return;
    }
    while (pmove->next != list->tailnode)
    {
        pmove = pmove->next;
    }
    pmove->next = NULL;//表尾指標前面一個下一個指向null
    free(list->tailnode);
    list->tailnode = pmove;
  
}

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2843369/,如需轉載,請註明出處,否則將追究法律責任。

相關文章