亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C數據結構之單鏈表詳細示例分析

2020-01-26 15:56:58
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

#include <stdio.h>
#include <stdlib.h>
typedef struct type
{
 int num;
 struct type *next;
}TYPE;
//=============================================================
// 語法格式: TYPE *init_link_head(int n)
// 實現功能: 從頭到尾,正序創建一個具有n個節點的鏈表,并對其值進行初始化
// 參數:  n: 鏈表的長度,即節點的個數
// 返回值:  所創建鏈表的首地址
//=============================================================
TYPE *init_link_head(int n)
{
 int i;
 TYPE *phead = NULL, *pf = NULL, *pi = NULL;
 for(i=0; i<n; i++)
 {
  pi = (TYPE *)malloc(sizeof(TYPE));
  printf("please inout num:/n");
  scanf("%d",&pi->num);
  if(i == 0)
   pf = phead = pi;
  else
  {
   pf->next = pi;
   pf = pi;
  }
  pi->next = NULL;
 }
 return phead;
}
//=============================================================
// 語法格式: TYPE *init_link_end(int n )
// 實現功能: 從尾到頭,倒序創建一個具有n個節點的鏈表,并對其值進行初始化
// 參數:  n: 鏈表的長度,即節點的個數
// 返回值:  所創建鏈表的首地址
//=============================================================
TYPE *init_link_end(int n )
{
 TYPE *phead = NULL, *pi = NULL;
 int i ;
 for(i=0; i<n; i++)
 {
  pi = (TYPE *)malloc(sizeof(TYPE));
  printf("please inout num:/n");
  scanf("%d",&pi->num);
  if(i == 0)
   pi->next = NULL;
  else
   pi->next = phead;
  phead = pi;
 }
 return phead;
}
//=============================================================
// 語法格式: insert_link(TYPE * phead,TYPE * pi)
// 實現功能: 將新申請的節點加入到指定鏈表中
// 參數:  *phead:待插入鏈表
//    * pi:帶插入節點
// 返回值:  插入指定節點后的新鏈表首址
//=============================================================
TYPE * insert_link(TYPE *phead, TYPE *pi)
{
 TYPE *pb, *pf;
 pb = phead;
 if(phead == NULL)
 {
  phead = pi;
  phead->next = NULL;
 }
 else
 {
  while((pi->num > pb->num) && (pb->next != NULL))
  {
   pf = pb;
   pb = pb->next;
  }
  if(pi->num <= pb->num)
  {
   if(pb == phead)
   {
    pi->next = phead;
    phead = pi;
   }
   else
   {
    pf->next = pi;
    pi->next = pb;
   }
  }
  else
  {
   pi->next = NULL;
   pb->next = pi;
  }
 }
 return phead;
}
//=============================================================
// 語法格式: delete_link(TYPE * phead,int num)
// 實現功能: 刪除給定序號所指向的節點
// 參數:  *phead:待刪除鏈表
//    num: 所需刪除的節點
// 返回值:  刪除指定節點后的新鏈表首址
//=============================================================
TYPE * delete_link(TYPE *phead, int num)
{
 TYPE *pf;
 TYPE *pb;
 if(phead == NULL)
 {
  printf("/nempty link/n");
  return NULL;
 }
 pb = phead;
 while((pb->num != num) && pb->next != NULL)
 {
  pf = pb;
  pb = pb->next ;
 }
 if(pb->num == num)
 {
  if(pb == phead)
   phead = phead->next;
  else
   pf->next = pb->next;
  free(pb);
  printf("the node is deleted/n");
 }
 else
  printf("the node not found/n");
 return phead;
}
//=============================================================
// 語法格式: print_link(TYPE * phead)
// 實現功能: 打印指定鏈表中的全部節點數據
// 參數:  *phead:待打印的鏈表首址
// 返回值:  無
//=============================================================
void print_link(TYPE *phead)
{
 TYPE *temp = phead;
 while( temp != NULL)
 {
  printf(" %d ",temp->num);
  temp = temp->next;
 }
}
//=============================================================
// 語法格式: search_num(TYPE * phead,int num)
// 實現功能: 在指定的鏈表中,按姓名查找指定元素
// 參數:  phead:待查找的鏈首址,num需要查找的字符串
// 返回值:  無
//=============================================================
void search_num(TYPE *phead, int num)
{
 TYPE *temp = phead;
 while(temp != NULL)
 {
  if(temp->num == num)
   printf("  %d ",num);
  temp = temp->next;
 }
 if(temp == NULL)
  printf("node not been found/n");
}
//=============================================================
// 語法格式: order_link(TYPE * phead)
// 實現功能: 采用冒泡法,對指定鏈表按序號進行排序(交換數據域)
// 參數:  phead:待排序的鏈首址
// 返回值:  排好序的鏈表phead指針
//=============================================================
TYPE *order_link(TYPE *phead)
{
 TYPE *pb,*pf,temp;
 pb = pf =phead;
 if(phead == NULL)
  return NULL;
 while(pb->next != NULL)
 {
  pf = pb->next;
  while(pf != NULL)
  {
   if(pb->num > pf->num)
   {
    temp = *pb;
    *pb = *pf;
    *pf = temp;
    temp.next = pb->next;
    pb->next = pf->next;
    pf->next = temp.next;
   }
   pf = pf->next;
  }
  pb = pb->next;
 }
 return phead;
}
//=============================================================
// 語法格式: reverse_link(TYPE * phead)
// 實現功能: 對給定鏈表按序號進行倒序排序
// 參數:  phead:待排序的鏈首址
// 返回值:  排好序的鏈表phead指針
//=============================================================
TYPE *reverse_link(TYPE *phead)
{
 TYPE *pb, *pf, *temp;
 pb = phead;
 pf = pb->next;
 while(pf != NULL)
 {
  temp = pf->next;
  pf->next = pb;
  pb = pf;
  pf = temp;
 }
 phead->next = NULL;
 phead = pb;
 return phead;
}
//=============================================================
// 語法格式: free_all(TYPE * phead)
// 實現功能: 釋放鏈表中所有的節點
// 參數:  phead:待釋放的鏈表首址
// 返回值:  無
//=============================================================
void free_all(TYPE *phead)
{
 TYPE *p;
 while(phead!=NULL)
 {
  p=phead->next;
  free(phead);
  phead=p;
 }
}
//=============================================================
// 語法格式: merge(TYPE *p1,TYPE *p2)
// 實現功能: 對兩個鏈表進行升序合并
// 參數:  p1,p2兩個代合并的鏈表
// 返回值:  合并后的鏈表
//=============================================================
TYPE *merge_link(TYPE *p1, TYPE *p2)
{
 TYPE *p, *phead;
 if(p1 == NULL)
  return p2;
 if(p2 == NULL)
  return p1;
 if(p1->num < p2->num)
 {
  phead = p = p1;
  p1 = p1->next;
 }
 else
 {
  phead = p = p2;
  p2 = p2->next;
 }
 while(p1 != NULL && p2 != NULL)
 {
  if(p1->num < p2->num)
  {
   p->next = p1;
   p = p1;
   p1 = p1->next;
  }
  else
  {
   p->next = p2;
   p = p2;
   p2 = p2->next;
  }
 }
 if(p1 != NULL)
  p->next = p1;
 else
  p->next = p2;
 return phead;
}
//=============================================================
// 實現方法:   運用遞歸
// 語法格式: merge(TYPE *p1,TYPE *p2)
// 實現功能: 對兩個鏈表進行升序合并
// 參數:  p1,p2兩個代合并的鏈表
// 返回值:  合并后的鏈表
//=============================================================
TYPE * merge_link_self(TYPE *p1, TYPE *p2)
{
 TYPE *phead = NULL;
 if(p1 == NULL)
  return p2;
 if (p2 == NULL)
  return p1;
 if(p1->num < p2->num)
 {
  phead = p1;
  phead->next =merge_link(p1->next, p2);
 }
 else
 {
  phead = p2;
  phead->next = merge_link(p1, p2->next);
 }
 return phead;
}
int main(void)
{
 return 0;
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97国产成人精品视频| 成人黄色在线免费| 欧美成人精品在线观看| 国产激情999| 亚洲色图偷窥自拍| 亚洲免费影视第一页| 亚洲精选在线观看| 亚洲精品福利免费在线观看| 成人午夜激情网| 91免费的视频在线播放| 欧美色xxxx| 欧美老肥婆性猛交视频| 久久高清视频免费| 亚洲少妇激情视频| 国产成人精品日本亚洲专区61| 美女久久久久久久久久久| 日韩精品视频免费专区在线播放| 久久av在线看| 日本久久久久久| 日韩av在线网页| 日韩乱码在线视频| 精品国产视频在线| 成人一区二区电影| 欧美日韩性视频在线| 欧美午夜女人视频在线| 亚洲区中文字幕| 国产日韩中文字幕在线| 亚洲天堂久久av| 91精品国产91| 日韩精品一区二区三区第95| 国产精品扒开腿爽爽爽视频| 中文字幕亚洲一区| 亚洲第一福利在线观看| 裸体女人亚洲精品一区| 亚洲欧美制服丝袜| 日韩中文字幕在线视频| 中文字幕欧美日韩va免费视频| 国产精品海角社区在线观看| 另类天堂视频在线观看| 国产亚洲激情视频在线| 国模私拍一区二区三区| 成人国内精品久久久久一区| 欧美成人激情视频| 国产盗摄xxxx视频xxx69| 午夜精品一区二区三区在线视| 亚洲最大福利网站| 1769国内精品视频在线播放| 中文字幕欧美国内| 国产成人一区二区三区电影| 欧美猛少妇色xxxxx| 日韩视频在线免费观看| 亚洲人成网在线播放| 欧美在线亚洲在线| 国产日韩亚洲欧美| 国产视频久久久| 成人日韩av在线| 亚洲影院色无极综合| 久久久久久久久久久av| 亚洲图片欧洲图片av| 亚洲精品国产欧美| 日韩精品在线私人| 欧美国产日韩一区二区| 国产剧情日韩欧美| 久久成人精品视频| 久久久成人的性感天堂| 精品久久久久久久久久国产| www.亚洲男人天堂| 精品久久久久久中文字幕一区奶水| 欧美一区二粉嫩精品国产一线天| 国产成人精品免高潮费视频| 精品香蕉一区二区三区| 久久久久久91香蕉国产| 成人免费福利在线| 久久久久久国产精品三级玉女聊斋| www.亚洲一区| 欧美日韩爱爱视频| 久久国产精品久久精品| 亚洲国产日韩欧美在线动漫| 欧美激情精品久久久久久免费印度| 亚洲国产古装精品网站| 久久大大胆人体| 日韩免费看的电影电视剧大全| 美日韩在线视频| 日韩精品视频在线观看免费| 久久久精品免费| 日韩欧美在线国产| 在线看福利67194| 色综合色综合久久综合频道88| 国产69久久精品成人| 日日噜噜噜夜夜爽亚洲精品| 一区二区三区亚洲| 国产日韩在线播放| 97色在线播放视频| 亚洲综合av影视| 亚洲欧洲av一区二区| 91亚洲午夜在线| 国产激情久久久| 欧美综合在线观看| 中文字幕精品一区二区精品| 国产精品免费视频久久久| xvideos亚洲人网站| 欧美中文字幕在线播放| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美中在线观看| 97超级碰碰碰| 欧洲精品久久久| 91精品国产综合久久香蕉| 91色在线视频| 不卡中文字幕av| 国产精品av免费在线观看| 九九视频这里只有精品| 国外视频精品毛片| 中文字幕亚洲无线码a| 国产精品偷伦视频免费观看国产| 亚洲福利精品在线| 国产亚洲精品美女久久久久| 亚洲一区美女视频在线观看免费| 精品欧美国产一区二区三区| 国产综合久久久久| 国产成人一区二| 国产成人av网| 欧美日韩一区二区三区在线免费观看| 久久成人精品视频| 亚洲国模精品私拍| 最新亚洲国产精品| 欧美日韩免费看| 午夜精品在线视频| 日韩精品高清在线观看| 欧美午夜女人视频在线| 亚洲精品一区二区三区不| 亚洲第一区在线| 精品久久久久久久久久ntr影视| 欧美日韩亚洲网| 91精品国产高清久久久久久久久| 日韩网站免费观看| 成人h视频在线观看播放| 日韩有码视频在线| 亚洲精品久久久久久下一站| 久青草国产97香蕉在线视频| 日产日韩在线亚洲欧美| 在线看日韩欧美| 成人激情在线播放| 91在线观看免费高清完整版在线观看| 亚洲欧美日韩一区二区在线| 欧美日韩在线一区| 久久韩剧网电视剧| 欧美激情视频播放| 久久69精品久久久久久国产越南| 久久影院中文字幕| 中文字幕欧美视频在线| 亚洲qvod图片区电影| 亚洲精品日韩激情在线电影| 亚洲影院高清在线| 国产啪精品视频网站| 亚洲精品电影网在线观看| 欧美亚洲一区在线| 欧洲亚洲女同hd| 成人性生交xxxxx网站| 欧美在线性视频| 中文字幕日韩av综合精品| 亚洲另类图片色| 日韩精品免费在线观看| 97不卡在线视频| 精品丝袜一区二区三区|