簡單的單向連結串列
#include <stdio.h>
#include <stdlib.h>
typedef struct _node {
int value;
struct _node *next;
}Node;
typedef struct _list { //為將來的升級提高了無限的可能
Node* head;
// Node* tail;
}List;
void add(List *plist, int number);
void print(List *plist);
void delete(List* plist,int dl);
void all_delete(List* plist);
int main()
{ //head已經是指標
// Node* head = NULL;
List list;
list.head=NULL;
int number;
do {
scanf("%d",&number);
if (number != -1) {
add(&list,number);
}
}while (number != -1);
print(&list);
int dl;
scanf("%d",&dl);
delete(&list,dl);
print(&list);
all_delete(&list);
//
return 0;
}
void add(List* plist, int number)//傳入指標的指標,使我們能夠對指標的值進行修改
{
//add to linked-list
Node *p = (Node*)malloc(sizeof(Node));
p->value = number;
p->next = NULL;
//find the last
Node *last = plist->head;
if( last != NULL ) {
while(last->next != NULL) {
last = last->next;
}
//attach
last->next = p;
}else plist->head = p;
}
void print(List *plist)
{
Node* p;
for( p=plist->head; p !=NULL ;p=p->next ) {
printf("%d\t",p->value);
}
}
void delete(List* plist,int dl)
{
Node *p;
Node *q;
for( q=NULL,p=plist->head; p ;q=p,p=p->next ) {
if( p->value == dl ) {
if( q ) {
q->next = p->next;
}else {
plist->head = p->next;
}
free(p);
break;
}
}
}
void all_delete(List* plist)
{
Node *p,*q;
for( p = plist->head; p ; p=q ) {
q = p->next;
free(p);
}
}
相關文章
- 連結串列 - 單向連結串列
- 單向連結串列的建立
- 線性表中的單向連結串列的簡單操作
- 棧_單向連結串列
- 12.19單向連結串列
- 簡單介紹python中的單向連結串列實現Python
- 佇列_單向連結串列佇列
- 單向迴圈連結串列
- 10單向連結串列(slist)
- 資料結構--陣列、單向連結串列、雙向連結串列資料結構陣列
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- 單向連結串列介面設計
- go 實現單向連結串列Go
- 結構與演算法(03):單向連結串列和雙向連結串列演算法
- 連結串列基礎2(超簡單)--單連結串列的插入和刪除
- 單向迴圈連結串列的介面程式
- 單向迴圈連結串列的實現
- 單向迴圈連結串列大綱
- 簡單連結串列——尾插法
- 設計單向迴圈連結串列的介面
- 單連結串列
- Python實現單向連結串列詳解Python
- 連結串列-單連結串列實現
- 畫江湖之資料結構【第一話:連結串列】單向連結串列資料結構
- 畫江湖之資料結構 [第一話:連結串列] 單向連結串列資料結構
- C語言單向連結串列的增刪操作C語言
- 單連結串列的建立
- 資料結構-2.單向連結串列的實現資料結構
- leetcode:21. 合併兩個有序連結串列(連結串列,簡單)LeetCode
- 單雙連結串列
- 資料結構之php實現單向連結串列資料結構PHP
- 反轉連結串列(C++簡單區)C++
- 資料結構-單連結串列、雙連結串列資料結構
- 55-將單連結串列原地逆置(有頭結點的單連結串列)
- 連結串列-雙向連結串列
- c/c++ 線性表之單向連結串列C++
- Java實現單向連結串列基本功能Java
- 單連結串列成環