mysql增刪改查鍊錶 鍊錶的增刪改查

2021-10-22 06:41:26 字數 3653 閱讀 6008

#include

#include

//先定義鍊錶裡面的元素。

typedef struct nodemynode;

//定義整個鍊錶。

typedef struct linkmylink;

int isempty_to_mylink(mylink *mylink);//判斷鍊錶是否為空。

int push_to_mylinkinhead(mylink *mylink,int m);//向煉表頭新增元素值為m的元素。

int insert_to_mylink(mylink *mylink,mynode *mynode,int m);//向鍊錶的mynode後面新增乙個元素值為m的值。

int remove_to_mylinkbyvalue(mylink *mylink,int m);//刪除鍊錶中值為m元素。

int length_to_mylink(mylink *mylink);//判斷鍊錶的長度。

int i***istloop_mylink(mylink *mylink);//判斷鍊錶是否有環。

void printmylink(mylink *mylink);//輸出鍊錶。

int isempty_to_mylink(mylink *mylink){

if (mylink->head==null) {

return 1;

return 0;

int push_to_mylinkinhead(mylink *mylink,int m){

mynode *tempnode=malloc(sizeof(mynode));

tempnode->data=m;

tempnode->next=mylink->head;

mylink->head=tempnode;

free(tempnode);

return 1;

int insert_to_mylink(mylink *mylink,mynode *mynode,int m){

mynode *tempnode=malloc(sizeof(mynode));

tempnode->data=m;

tempnode->next=mynode->next;

mynode->next=tempnode;

free(tempnode);

return 1;

int remove_to_mylinkbyvalue(mylink *mylink,int m){

if (isempty_to_mylink(mylink)) {

return 0;

int flag=0;

while ((mylink->head)&&(mylink->head->next)) {

if (mylink->head->next->data==m) {

mylink->head=mylink->head->next;

flag++;

if ((mylink->head)&&(mylink->head->data==m)) {

mylink->head=mylink->head->next;

flag++;

if (flag>0) {

return 1;

return 0;

int length_to_mylink(mylink *mylink){

int mylength=0;

while (mylink->head) {

mylink->head=mylink->head->next;

mylength++;

return mylength;

int i***istloop_mylink(mylink *mylink){

mynode *tempnodea=malloc(sizeof(mynode));

mynode *tempnodeb=malloc(sizeof(mynode));

tempnodea=mylink->head;

tempnodeb=mylink->head;

while ((tempnodeb) && (tempnodeb->next)) {

tempnodea=tempnodea->next;

tempnodeb=tempnodeb->next->next;

if (tempnodea==tempnodeb) {

return 1;

free(tempnodea);

free(tempnodeb);

return 0;

void printmylink(mylink *mylink){

if (isempty_to_mylink(mylink)) {

printf("鍊錶為空\n");

return;

mynode *mynode = mylink->head;

while (mynode) {

printf("%d , ",mynode->data);

mynode=mynode->next;

int main(int argc, const char * ar**)

//建立自己的鍊錶。

mylink *mylink = malloc(sizeof(mylink));

mylink->head = null;

//建立自己鍊錶中的元素。

mynode *mynode = malloc(sizeof(mynode));

mynode->next=null;

mynode->data=0;

//判斷鍊錶是否為空。

if (isempty_to_mylink(mylink)) {

printf("空鍊錶\n");

else{

printf("不是空鍊錶\n");

//求得鍊錶的長度。

printf("鍊錶的長度為 %d\n",length_to_mylink(mylink));

//向鍊錶中指定位置插入乙個元素。

int temp = 10;

//插入到鍊錶的頭部。

if (push_to_mylinkinhead(mylink, temp)) {

printf("新增成功\n");

else{

printf("新增失敗\n");

//求得鍊錶的長度。

printf("鍊錶的長度為 %d\n",length_to_mylink(mylink));

printmylink(mylink);

//刪除某個值

if (remove_to_mylinkbyvalue(mylink, temp)) {

printf("刪除成功\n");

else{

printf("刪除失敗\n");

//判斷鍊錶是否有環。

if (i***istloop_mylink(mylink)) {

printf("存在環\n");

else{

printf("不存在環\n");

printmylink(mylink);

//求得鍊錶的長度。

printf("鍊錶的長度為 %d\n",length_to_mylink(mylink));

free(mylink);

free(mynode);

return 0;

鍊錶 增刪改查

實現 鍊錶的增刪改查 package com.baicai.linkedlist public class singlinkedlistdome 定義乙個singlinkedlist管理我們的英雄 class singlelinkedlist 如果沒有找到最後的乙個節點就直接往後面找 temp te...

鍊錶的增刪改查

include include define true 1 define false 0 int s 0 定義全域性變數s接收查詢資料的位置 結點型別定義 typedef struct linknode node 構造鍊錶 帶頭結點的尾插法建表 node create list tail next ...

鍊錶的增刪改查

include include define len sizeof preson 測結構體preson的長度,並定義常量,給後面的動態開闢空間提供方便 union clas position 共用體 老師和學生的描述不同,學生用班級,老師用職位 typedef struct presons 定義pr...