#include
using namespace std;
#include
//單鏈表的儲存結構
typedef struct node
node,*linklist;
//初始化單鏈表
void initlist()
l->next = null;//建立空的單鏈表
}//l是帶頭結點的空煉表頭指標,通過鍵盤輸入表中元素值,利用頭插法建單鏈表l
linklist linklistcreath()
return l;
}//l是帶頭結點的空煉表頭指標,通過鍵盤輸入表中元素值,利用尾插法建單鏈表l
linklist linklistcreatt()
}//在帶頭結點的單鏈表l中查詢第i個結點,若找到(1<=i<=n),則返回該結點的儲存位置,否則返回null
node *get(linklist l, int i)
node *p;
p = (node *)malloc(sizeof(node));
p = l;
while ((p->next != null)&&(j < i))
if (i = j)
else
return null;
}//在帶頭結點的單鏈表l中查詢其結點值等於key的第1個結點,若找到則返回該結點的儲存位置p,否則返回nul
node *locate(linklist l, int key)
else
}return p;
}//求帶頭結點的單鏈表l的長度
int listlength(linklist l)
return j;
}//在帶頭結點的單鏈表l中第i個位置之前插入值為e的新結點,n個元素有n+1個插入位置
int inslist(linklist l, int i, int e)
int j = 0;
p = l;
while ((p != null) && (j < i - 1))//p在i-1處,p的下乙個是i
if (!p)//找完還未找到第i個,i不在鍊錶範圍內,或大於鍊錶範圍
//插入資料
node *s;
s = (node *)malloc(sizeof(node));
s->data = e;
s->next = p->next;
p->next = s;
return 1;
}//在帶頭結點的單鏈表l中刪除第i個元素,並將刪除的元素儲存到變數*e中
int dellist(linklist l, int i,int *e)
if (!p->next)//表示pre->next=null,沒有找到合法的前驅位置,說明刪除位置i不合法
//刪除
node *r;
r = p->next;
p->next = r->next;
*e = r->data;
free(r);
return 1;
}
學習筆記 單鏈表的頭插 尾插
頭插法 1 頭結點指向賦值為空 2 將新節點插入到原頭節點之後,首節點之前 3頭節點重新指向插入的節點 應用例題 輸入乙個鍊錶,按鍊錶從尾到頭的順序返回乙個arraylist。思路 首先建立乙個輔助鍊錶,然後取原鍊錶中的元素,使用頭插法將其插入到新的輔助鍊錶中去,最後就能得到乙個從尾到頭的array...
單鏈表的初始化和建立(尾插法)
1 include2 include3 typedef struct node 4node,linklist 89 void initlist linklist l 1014 15 linklist creatlist int n 16 24 h data 0 25 h next null 26 l...
單鏈表的建立(頭插法尾插法),插入,刪除
include include include using namespace std typedef int elemtype typedef struct node node,linkedlist 把struct node 定義為新型別linklist,是乙個結構體的指標。void initli...