線性表:n個相同型別的資料元素的有限序列
第乙個元素沒有直接前驅,最後乙個元素沒有直接後繼,除此之外每個資料元素都已乙個直接前驅和直接後繼
線性表的儲存結構:順序儲存和鏈式儲存
鏈式儲存:用一組任意的儲存單元來存放線性表的結點
單鏈表的基本操作:
#ifndef link_h__
#define link_h__
typedef int datatype;
typedef struct _node
node, *pnode;
//增加結點
void insertnode(pnode *pnode, datatype value);
//前插節點
void inserthead(pnode *pnode, datatype value);
//刪除結點
void deletenode(pnode *pnode, int value);
//查詢節點
node *searchnode(node *pnode, int value);
//修改結點的值
int changenodenum(pnode *pnode, datatype oldnum, datatype newnum);
//顯示所有結點的值
void shownodenum(node *pnode);
//鍊錶的逆轉
node *reserve(pnode pnode);
//鍊錶的排序
void sort(pnode pnode);
//刪除頭結點
void deletehead(pnode *phead);
#endif // link_h__
以上函式的實現:
#include "link.h"
//增加結點
void insertnode(pnode *pnode, datatype value)
else
p->next = pnew; }}
//前插節點
void inserthead(pnode *pnode, datatype value)
else }
//刪除結點
void deletenode(pnode *pnode, int value)
if (null == pvalue)
if (null == pprev)
else
}}//刪除頭結點
void deletehead(pnode *phead)
}//查詢節點
node *searchnode(node *pnode, int value)
phead = phead->next;
} return null;
}//修改結點的值
int changenodenum(pnode *pnode, datatype oldnum, datatype newnum)
phead = phead->next;
} return 0;
}//顯示所有結點的值
void shownodenum(node *pnode)
printf("\b\b \n");
}//鍊錶的逆轉
node *reserve(pnode pnode)
node *p1 = pnode;
node *p2 = p1->next;
node *p3 = null;
while (p2 != null)
pnode->next = null;
pnode = p1;
return pnode;
}//鍊錶的排序
void sort(pnode pnode)
} }}
測試**:
#include "link.h"
int main(void)
else
*/shownodenum(head);
deletenode(&head, 1);
shownodenum(head);
/* sort(head);
shownodenum(head);
*/ /*
pnode p = reserve(head);
shownodenum(p);
*/ return 0;
}
單鏈表基本操作
include include include include includeusing namespace std typedef struct node node,plinklist plinklist createfromhead node pstnode node malloc sizeof...
單鏈表基本操作
單鏈表的初始化,建立,插入,查詢,刪除。author wang yong date 2010.8.19 include include typedef int elemtype 定義結點型別 typedef struct node node,linkedlist 單鏈表的初始化 linkedlist...
單鏈表基本操作
include using namespace std define namelenth 20 define ok 0 define error 1 typedef struct flagnode node 生成結點 inline node newnode 銷毀化煉表 void destroylin...