真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言鏈表函數(shù)的調(diào)用 c語言鏈表庫函數(shù)

關(guān)于C語言一個單鏈表函數(shù)調(diào)用的問題,求解答?。。?!

LinkList

萬源網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司從2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。

*q=L,*p;

//這里,你的p沒有賦值,當然p=p-next會出錯了??!

程序?qū)憣α说脑?,按你的情況是可以去掉那個的

修改:

LinkList

*q,*p=L;

C語言創(chuàng)建鏈表,函數(shù)調(diào)用部分

#includestdio.h

#includewindows.h

#include stdio.h

#include malloc.h

#include stdlib.h

//定義數(shù)據(jù)類型名稱

typedef int DataType;

#define flag -1?? ??? ?//定義數(shù)據(jù)輸入結(jié)束的標志數(shù)據(jù)

//單鏈表結(jié)點存儲結(jié)構(gòu)定義

typedef struct Node

{

DataType data;

struct Node *next;

}LNode ,*LinkList;

//建立單鏈表子函數(shù)

LNode *Create_LinkList()

{

LNode *s,*head,*L;int i=0,x;?? ??? ?//定義指向當前插入元素的指針

while(1)

{

scanf("%d",x);

if(-1==x)

{?? return head;

break;}

s= (LNode *)malloc(sizeof(LNode));?? ??? ?//為當前插入元素的指針分配地址空間

s-data =x;

s-next =NULL;

i++;

if(i==1)

head=s;

else

L-next =s;

L=s;

}

}

//查找子函數(shù)(按序號查找)

LNode *Get_LinkList(LinkList L,int i)

{

LNode *p;

int j;?? ??? ?//j是計數(shù)器,用來判斷當前的結(jié)點是否是第i個結(jié)點

p=L;

j=1;

while(p!=NULLji)

{

p=p-next ;?? ??? ?//當前結(jié)點p不是第i個且p非空,則p移向下一個結(jié)點

j++;

}

return p;

}

//插入運算子函數(shù)

void Insert_LinkList(LinkList L,int i,DataType x)?? ??? ?//在單鏈表L中第i個位置插入值為x的新結(jié)點

{

LNode *p,*s;

p =Get_LinkList(L,i);?? ??? ?//尋找鏈表的第i-1個位置結(jié)點

if(p==NULL)

{

printf("插入位置不合法!");

exit(-1);

}

else

{

s= (LinkList)malloc(sizeof(LNode));?? ??? ?//為當前插入元素的指針分配地址空間

s-data =x;

s-next =p-next ;

p-next =s;

}

}

//單鏈表的刪除運算子函數(shù)

void Delete_LinkList(LinkList L,int i)?? ??? ?//刪除單鏈表上的第i個結(jié)點

{

LNode *p,*q;

p=Get_LinkList(L,i-1);?? ??? ?//尋找鏈表的第i-1個位置結(jié)點

if(p==NULL)

{

printf("刪除的位置不合法!");?? ??? ?//第i個結(jié)點的前驅(qū)結(jié)點不存在,不能執(zhí)行刪除操作

exit(-1);

}

else

{

if(p-next ==NULL)

{

?printf("刪除的位置不合法!");?? ??? ?//第i個結(jié)點不存在,不能執(zhí)行刪除操作

?exit(-1);

}

else

{

?q=p-next ;

?p-next =p-next-next;

?free(q);

}

}

}

//求表長運算子函數(shù)

int Length_LinkList(LinkList L)

{

int l;?? ??? ?//l記錄L的表長

LNode *p;

p=L;

l=1;

while(p-next)

{

p=p-next;

l++;

}

return l;

}

int main ()

{

LNode *head,*p;

head=(LinkList)malloc(sizeof(LNode));

int x,y;

a:

printf("*******menu*******\n");

printf("**創(chuàng)建**********1*\n");

printf("**插入**********2*\n");

printf("**刪除**********3*\n");

printf("**表長**********4*\n");

printf("**清屏**********5*\n");

printf("**打印**********6*\n");

printf("**退出******other*\n");

printf("******************\n");

int i=1;

while(i)

{

printf("請輸入選項:");

scanf("%d",i);

switch(i)

{

case 1:head=Create_LinkList(); getchar();break;

case 2:printf("請輸入位置和數(shù)據(jù);");

scanf("%d%d",x,y);

Insert_LinkList(head,x,y);break;

case 3:printf("請輸入位置;");

scanf("%d",x);

Delete_LinkList(head,x);break;

case 4:printf("%d",Length_LinkList(head));break;

case 5:system("cls");goto a;

case 6:p=head;

while(p!=NULL)

{printf("%d\n",p-data);

p=p-next;}

break;

default :i=0;

}

}

}

我把創(chuàng)建給改了一下

鏈表中,C語言自定義函數(shù)調(diào)用。

printf("是否需要重新統(tǒng)計班級男女生比例:yes--1,no--0:");

scanf("%d\n",flag);//這里多個\n去掉,會影響你正常輸入

變成scanf("%d",flag);

C語言鏈表的使用方法

下面的程序是單鏈表的建立與輸出,都有詳細的注釋,相信你能看的懂

但要想學習鏈表必須得掌握了一定的C語言基礎(chǔ)

下面這個鏈表的作用是建立5個結(jié)點的單鏈表,5個結(jié)點的值輸入以后,依次輸出各個結(jié)點的值

#includestdio.h

#includestdlib.h

//鏈表的建立與輸出

struct node//定義結(jié)點的類型

{

int num,score;

node*link;

};

void main()

{

node*creat(int n);//函數(shù)原型聲明

void print(node*h);//函數(shù)原型聲明

node*head=0;//定義鏈頭指針并初始化

head=creat(5);//調(diào)用creat函數(shù)創(chuàng)建鏈表

print(head);//調(diào)用print函數(shù)輸出鏈表

}

node*creat(int n)

{

node*h=0,*p,*q;

int i;

for(i=1;i=n;i++)

{

q=(node*)malloc(sizeof(node));//分配一個結(jié)點空間

scanf("%d%d",q-num,q-score);//輸入新結(jié)點的值

q-link=0;//新結(jié)點的指針域置0

if(h==0)

h=q;//第一個結(jié)點作為鏈頭結(jié)點

else

p-link=q;//新結(jié)點添加到鏈表的末尾

p=q;

}

return h;//返回鏈頭指針

}

void print(node*h)//鏈表輸出函數(shù)的定義

{

while(h)//當指針h非空時輸出h所指結(jié)點的值

{

printf("num=%d\tscore=%d\n",h-num,h-score);

h=h-link;//使h指向下一個結(jié)點

}

}


網(wǎng)站名稱:c語言鏈表函數(shù)的調(diào)用 c語言鏈表庫函數(shù)
瀏覽路徑:http://weahome.cn/article/ddddgde.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部