#include #include typedef struct node
node;
//鍊錶輸出
void output(node *head)
printf("\r\n");
}//鍊錶建立
node* creat()
head->pstnext = null;
p = head;
while(cycle)
s->ndate = date;
p->pstnext = s;
p = s;
} else
}p->pstnext = null;
return(head);
}//單鏈表測長
void length(node *head)
printf("%d\r\n", j);
}//鍊錶按值查詢
void research_date(node *head, int date)
if(null == p)
else if(date == p->ndate)
return;
}//按序號查詢
void research_number(node *head, int num)
if(p == null)
else if(i == 0)
else if(i == num) }
//在指定元素之前插入新結點
void insert_1(node *head, int i, int newdate)
if(null == pre || j > i-1)
else
new->ndate = newdate;
new->pstnext = pre->pstnext;
pre->pstnext = new; }
}//在指定元素之後插入新結點
void insert_2(node *head, int i, int newdate)
if(j == i)
new->ndate = newdate;
new->pstnext = pre->pstnext;
pre->pstnext = new;
}else }
//刪除指定結點
void delete_1(node *head, int i3)
if(null == p)
else }
//指定刪除單鏈表中某個資料,並統計刪除此資料的個數
int delete_2(node *head, int delete_date)
else
}return count;
}//鍊錶逆置
void reverse_list(node *head)
q = head->pstnext->pstnext;
head->pstnext->pstnext = null;
while(null != q) }
//單鏈表的連線
void connect_list(node *head, node *head_new)
p->pstnext = head_new->pstnext;
}//單鏈表銷毀
void destroy_list(node* head)
}int main()
#include
#include
typedef struct node
node;
//鍊錶輸出
void output(node *head)
printf("\r\n");
}//鍊錶建立
node* creat()
head->pstnext = null;
p = head;
while(cycle)
s->ndate = date;
p->pstnext = s;
p = s;
}else
}p->pstnext = null;
return(head);
}//單鏈表測長
void length(node *head)
printf("%d\r\n", j);
}//鍊錶按值查詢
void research_date(node *head, int date)
if(null == p)
else if(date == p->ndate)
return;
}//按序號查詢
void research_number(node *head, int num)
if(p == null)
else if(i == 0)
else if(i == num)
}//在指定元素之前插入新結點
void insert_1(node *head, int i, int newdate)
if(null == pre || j > i-1)
else
new->ndate = newdate;
new->pstnext = pre->pstnext;
pre->pstnext = new;}}
//在指定元素之後插入新結點
void insert_2(node *head, int i, int newdate)
if(j == i)
new->ndate = newdate;
new->pstnext = pre->pstnext;
pre->pstnext = new;
}else
}//刪除指定結點
void delete_1(node *head, int i3)
if(null == p)
else
}//指定刪除單鏈表中某個資料,並統計刪除此資料的個數
int delete_2(node *head, int delete_date)
else
}return count;
}//鍊錶逆置
void reverse_list(node *head)
q = head->pstnext->pstnext;
head->pstnext->pstnext = null;
while(null != q)
}//單鏈表的連線
void connect_list(node *head, node *head_new)
p->pstnext = head_new->pstnext;
}//單鏈表銷毀
void destroy_list(node* head)
}int main()
模板 資料結構 鍊錶 LinkedList
乙個只供刪除的雙向鍊錶,為了簡單不再引入head節點,而且也不進行next的套娃操作。空間使用略微多了一些,但是無傷大雅。struct linkedlist prev 1 1 next n 1 void remove int x 正常的鍊錶是單向鍊錶,刪除操作是刪除當前節點的下乙個節點,沒有必要。全...
資料結構 類模板實現鍊錶
鍊錶節點 templateclass linknode 鍊錶 templateclass linklist 指定位置插入 void inset linklist int pos,t data 建立新的節點 linknode newnode new linknode newnode data data...
Acwing資料結構 鍊錶,棧,佇列模板
單鏈表 模板題 acwing 826.單鏈表 head儲存煉表頭,e儲存節點的值,ne儲存節點的next指標,idx表示當前用到了哪個節點 int head,e n ne n idx 初始化 void init 在煉表頭插入乙個數a void insert int a 將頭結點刪除,需要保證頭結點存...