今天總結了一下單鏈表的基本操作:建立,求長度,輸出結點,排序(冒泡及歸併)
#include
#include
using namespace std;
struct listnode
;//尾插法,新建乙個鍊錶
listnode *creatlist( )
else
cycle=0;
}//head=head->next;//head指向第乙個節點
p->next=null;//尾指標
//printf("\n %d",head->data);//輸出頭結點
printf("\n");
return head;
}//求鍊錶長度
int lenlist(listnode *head)
return n;
}//輸出單鏈表結點
void printlist(listnode *head)
}int main()
#include
#include
using namespace std;
//以下宣告適用於歸併排序鍊錶
#define maxsize 1024
#define length 8
struct sqlist
;//冒泡法排序鍊錶,(公升序)
listnode* bubblesortlist(listnode *head)}}
return head;
}//歸併法排序鍊錶
void merge(sqlist sr,sqlist &tr,int i,int
m,int n)
while(i<=m)
tr.r[k++]=sr.r[i++];
while(j<=n)
tr.r[k++]=sr.r[j++];
}void msort(sqlist sr,sqlist &tr,int
s,int t)
}void mergesort(sqlist &l)
int main()
,length};
mergesort(l);
for(i=1;i<=l.length;i++)
cout<" ";
cout0;}
//刪除單鏈表的某個結點,並返回頭結點
//注意:當鍊表有頭結點時,刪除任乙個結點,操作相同。
//不同的是無頭結點的單鏈表。故該鍊錶無頭結點。
listnode *deletelistnode(listnode *head,int num)
if(num==p->
data)
else
}else
printf("\n%d could not been found.",num);
return head;
}//單鏈表的插入
//有序的單鏈表,把值num插入
listnode *insertlistnode(listnode *head,int num)
if(p0->
data
<=p->
data)
else
//插入鍊錶中間 q--p0--p1
}else
//插入位置位於鍊錶尾部
return head;
}
單鏈表的建立及基本操作
鍊錶作為資料結構中最容易理解的結構,我們需要對它的基本操作非常熟悉 結點結構 typedef struct node node,snode 基本操作 初始化 初始化 snode init 建立鍊錶 頭插法建立單鏈表 snode create1 int n return head 尾插法建立單鏈表 s...
單鏈表的建立及操作
1 單鏈表的結構體演算法 typedef char elemtype typedef struct node lnode,linklist lnode為結點型別,linklist為指向結點的指標型別 2 建立單鏈表 1 頭插法 從表尾到表頭逆向建立 演算法思路 1 首先建立乙個頭結點h,並使頭結點的...
單鏈表的基本操作 單鏈表的建立 插入 刪除結點等
1 單鏈表的建立 2 建立結點 3 列印結點 4 鍊錶的插入 頭插法 5 鍊錶的刪除 指定位置刪除 include include include 結構體 結點由資料域 指標域構成 struct node 建立鍊錶 表頭 struct node createlist 建立結點 struct node...