国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

鏈表的c語言實現(三)

2019-11-17 05:19:41
字體:
來源:轉載
供稿:網友
二、單鏈表的基本運算
建立了一個單鏈表之后,假如要進行一些如插入、刪除等操作該怎么辦?所以還須把握一些單鏈表的基本算法,來實現這些操作。單鏈表的基本運算包括:查找、插入和刪除。下面我們就一一介紹這三種基本運算的算法,并結合我們建立單鏈表的例子寫出相應的程序。
1、查找
對單鏈表進行查找的思路為:對單鏈表的結點依次掃描,檢測其數據域是否是我們所要查好的值,若是返回該結點的指針,否則返回NULL。
因為在單鏈表的鏈域中包含了后繼結點的存儲地址,所以當我們實現的時候,只要知道該單鏈表的頭指針,即可依次對每個結點的數據域進行檢測。
以下是應用查找算法的一個例子:
#include <stdio.h>
#include <malloc.h>
#include <string.h> /*包含一些字符串處理函數的頭文件*/
#define N 10typedef strUCt node
{
char name[20];
struct node *link;
}stud;stud * creat(int n) /*建立鏈表的函數*/
{
stud *p,*h,*s;
int i;
if((h=(stud *)malloc(sizeof(stud)))==NULL)
{
exit(0);
}
h->name[0]='/0';
h->link=NULL;
p=h;
for(i=0;i<n;i++)
{
if((s= (stud *) malloc(sizeof(stud)))==NULL)
{
printf("不能分配內存空間!");
exit(0);
}
p->link=s;
printf("請輸入第%d個人的姓名",i+1);
scanf("%s",s->name);
s->link=NULL;
p=s;
}
return(h);
}stud * search(stud *h,char *x) /*查找鏈表的函數,其中h指針是鏈表的表頭指針,x指針是要查找的人的姓名*/
{
stud *p; /*當前指針,指向要與所查找的姓名比較的結點*/
char *y; /*保存結點數據域內姓名的指針*/
p=h->link;
while(p!=NULL)
{
y=p->name;
if(strcmp(y,x)==0) /*把數據域里的姓名與所要查找的姓名比較,若相同則返回0,即條件成立*/
return(p); /*返回與所要查找結點的地址*/
else p=p->link;
}
if(p==NULL)
printf("沒有查找到該數據!");
}main()
{
int number;
char fullname[20];
stud *head,*searchpoint; /*head是表頭指針,searchpoint是保存符合條件的結點地址的指針*/
number=N;
head=creat(number);
printf("請輸入你要查找的人的姓名:");
scanf("%s",fullname);
searchpoint=search(head,fullname); /*調用查找函數,并把結果賦給searchpoint指針*/
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灵寿县| 万源市| 和田市| 朝阳市| 大洼县| 广德县| 黔南| 德清县| 鄂托克前旗| 湟中县| 象山县| 黄平县| 保亭| 申扎县| 六盘水市| 城口县| 新蔡县| 潞西市| 合作市| 隆子县| 陆河县| 嫩江县| 呼图壁县| 高淳县| 乾安县| 兰溪市| 盐亭县| 诸暨市| 大安市| 乐清市| 内黄县| 民权县| 韩城市| 白朗县| 海南省| 赤壁市| 天峨县| 星座| 长岛县| 安多县| 甘泉县|