資料結構 線性表 單鏈表

2021-08-21 15:15:12 字數 2781 閱讀 1418

#include #include /*結構體的定義和數序表的定義*/

typedef int elemtype;

typedef struct node

node;

/*函式的宣告*/

void initnode(node *h);

int addnode(node *h,elemtype e);

void deletenode(node *s,int n);

void changenode(node *s,int n,elemtype e);

void inquirenode(node *s,elemtype e);

void shownode(node *s);

int main(void)

/*鍊錶的初始化*/

void initnode(node *h)

/*增加乙個鍊錶節點*/

int addnode(node *h,elemtype e)

f->next = p; //最後乙個節點指向新申請的節點

printf("add data %d is right!\n",e);

return 1;

}/*刪除乙個節點*/

void deletenode(node *s,int n)

temp = ((f->next)->next);

free(f->next);

f->next = temp; //注意釋放記憶體的時間應該在指標被覆蓋前

printf("\nfinish delete %d node\n",n);

}/*更改乙個節點的資料*/

void changenode(node *s,int n,elemtype e)

/*查詢乙個資料*/

void inquirenode(node *s,elemtype e)

p = p->next;

n++;

}if(ss == 0)

printf("\nno data in node!\n");

}/*展示鍊錶中的資料*/

void shownode(node *s)

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

}

#include #include typedef int elemtype;

typedef struct nodelinknode;

int initlinknode(linknode *p);

int linknodeadd(linknode *p,elemtype e);

int insertnode(linknode *p,elemtype e,int n);

int linknodedel(linknode *p,int n);

int linknodepop(linknode *p);

int getlenght(linknode *l);

int isinnode(linknode *l,elemtype e);

int printnode(linknode *p);

int main()

else

printf("not in node\n");

return 0;

}int initlinknode(linknode *p)

/***尾部增加節點

*/int linknodeadd(linknode *p,elemtype e)

//尾部新增新節點

r->next = l;

printf("add %d is ok!\n",e);

return 1;

}/**

*插入節點

*/int insertnode(linknode *p,elemtype e,int n)

temp = l->next;

//申請新節點

new1 = (linknode *)malloc(sizeof(linknode));

new1->data = e;

new1->next = temp;

l->next = new1;

printf("insert %d is ok!\n",e);

return 1;

}/**

*尾部刪除節點

*/int linknodepop(linknode *p)

l->next = null;

return 1;

}/**

*定點刪除節點

*/int linknodedel(linknode *p,int n)

temp = f->next;

f->next = temp->next;

free(temp);

return 1;

}/**

*遍歷單鏈表

*/int printnode(linknode *p)

printf("%d\n",l->data);

return 1;

}/**

*求單鏈表長度

*/int getlenght(linknode *l)

return sum;

}/**

*判斷資料是否在鍊錶中

*/int isinnode(linknode *p,elemtype e)

l = l->next;

}if(l->data == e)

return 0;

}

資料結構 線性表 單鏈表

本文只要實現單鏈表的初始化 插入 尾插 頭插 任意位置插入 刪除 尾刪 頭刪 刪除指定元素 查詢等。定義單鏈表 typedef int datatype typedef struct linknode linknode,plinknode,plist 實現單鏈表的所有介面 void initlink...

資料結構 線性表 單鏈表

資料結構 線性表的鏈式表示 單鏈表 線性表元素序號從1算起 date 2017 4 13 include include define initsize 100 define elemtype char typedef struct lnodelnode,linklist linklist crea...

資料結構 線性表 單鏈表Java

建立自定義的類和構造方法來實現簡單的單鏈表。將結點結構定義為私有內部類,在外部類中對鍊錶結構進行初始化,包括頭結點和初始大小。單鏈表操作原理不難,難點在於對鍊錶進行插入和刪除操作時,對於指標交換和分配的邏輯。插入 找到要插入的位置 i 後,用新結點的後繼指標替換 i 的後繼指標,再將 i 的後繼指標...