您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“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; }
以上是“C++數據結構中鏈表有哪些操作”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。