#include
#include
#include
#include
typedef struct _node
node;
/*建立乙個鍊錶*/
node *creatnode_head(int n)
return r;
}node *creatnode(int n)
q->next=null;
return r;
}/*測量鍊錶的長度*/
int length(node *p)
return len;
}/*清空乙個鍊錶*/
void clear_list(node *list)
p = list->next;//第乙個結點
while(p)
list->next = null;
printf("此鍊錶已經為空:\n");
} /*判斷乙個鍊錶是否為空*/
bool isempty(node *list)
else
} /*列印鍊錶*/
void printnode(node *p)
else
}printf("\n");
}/*定位到某個位置,返回值是該節點儲存的資料*/
int search_node(node *head,int pos)
else if(pos==0)
else if(head->next==null)
else}}
return head->data;
}/*定位到某個位置,返回值是該節點儲存的位址*/
node *search_node1(node *head,int pos)
else if(pos==0)
else if(head->next==null)
else}}
return head;
}/*刪除某個節點*/
node *delete_node(node *head,int pos)
else
return p;
}/*在某個位置插入乙個新節點*/
node *insert_node(node *head,int pos,int data)
node *item=(node*)malloc(sizeof(node));
item->data=data;
item->next=head->next;
head->next=item;
return p;
}/*交換函式*/
void swap(int *x,int *y)
/*氣泡排序*/
node *bubblesortlist(node *list)
}p = q;
}list->next=head;
return r;
}/*兩個有序鍊錶的合併*/
node *sortedmerge(node * a, node * b)
else
return (result);
} /*鍊錶的逆置*/
單向鍊錶操作
今天花了一天時間把單向鍊錶的建立,增加,刪除,修改,查詢,遍歷等問題用c 實現了一遍,把以前好多模糊的地方,終於弄清楚了。現在把這些內容記錄下來。1.建立單向鍊錶結點 我們通常用乙個結構體表示鍊錶結點,如下 struct listnode 2.插入新結點 bool insertlistnode li...
單向鍊錶的操作
1.單向鍊錶的建立 鍊錶建立後,其實,此時我們只可以知道head,而後通過head訪問每乙個節點成員。這是比較簡單的鍊錶,其中沒有其它的資訊了。如果需要建立有環的鍊錶,則將尾節點的next指標指向中間乙個節點即可。首先找到尾節點,而後將尾部節點的next指向中間乙個節點即可。如何判斷乙個鍊錶是否存在...
單向鍊錶的操作
include using namespace std typedef char elemtype 定義char型別的elemtype,方便修改 typedef struct lnode 定義乙個結構體 linklist void initlist linklist l void createlis...