欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C語言單鏈表保存函數(shù) c語言單鏈表頭文件

c語言用函數(shù)創(chuàng)建單鏈表

#includestdio.h

我們提供的服務有:成都網(wǎng)站建設、網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、于都ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的于都網(wǎng)站制作公司

#includestdlib.h

//鏈表定義

typedef int ElemType;

typedef struct LNode

{

int data;

struct LNode *next;

}LNode,*LinkList;

/*************************************

* 鏈表函數(shù) *

*************************************/

//鏈表初始化

void InitLink(LinkList L);

//創(chuàng)建函數(shù),尾插法

void CreateLink_T(LinkList L,int n);

//創(chuàng)建函數(shù),頭插法

void CreateLink_H(LinkList L,int n);

//銷毀函數(shù)

void DestroyLink(LinkList L);

//判斷是否為空函數(shù)

bool EmptyLink(LinkList L);

//獲取函數(shù)

bool GetLink(LinkList L,int i,int e);

//插入函數(shù)

void InsertLink(LinkList L,int i,int e);

//刪除函數(shù)

void DeleteLink(LinkList L,int i,int e);

//遍歷函數(shù)

void TraverseLink(LinkList L);

//鏈表長度函數(shù)

int LengthLink(LinkList L);

//合并函數(shù)

void MergeLink(LinkList L1,LinkList L2);

void main()

{

LinkList L1,L2;

InitLink(L1);

InitLink(L2);

CreateLink_H(L1,2);

CreateLink_T(L2,2);

TraverseLink(L1);

printf("\n");

TraverseLink(L2);

printf("\n");

MergeLink(L1,L2);

TraverseLink(L1);

TraverseLink(L2);

}

//創(chuàng)建函數(shù),尾插法

void InitLink(LinkList L)

{

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

if (!L)

{

printf("Init error\n");

return;

}

L-next=NULL;

}

void CreateLink_T(LinkList L,int n)

{

if(n1)

{

printf("n must =1\n");

return ;

}

else

{

// L=(LinkList)malloc(sizeof(LNode));

L-next=NULL;

for(int i=0;in;i++)

{

LinkList p=(LinkList)malloc(sizeof(LNode));// the lower letter p

printf("enter the data :\t");

scanf("%d",(p-data));

p-next=L-next;

L-next=p;

}

}

}

//創(chuàng)建函數(shù),頭插法

void CreateLink_H(LinkList L,int n)

{

if (n1)

{

printf("n must =1\n ");

return;

}

else

{

//L=(LinkList)malloc(sizeof(LNode));

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

L-next=NULL;

pre=L;

for(int i=0;in;i++)

{

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

printf("enter the data:\t");

scanf("%d",(p-data));

pre-next=p;

pre=p;

}

pre-next=NULL;

}

}

//銷毀函數(shù)

void DestroyLink(LinkList L)

{

LinkList q=L,p=L;

while (p)

{

q=p;

p=p-next;

free(q);

}

L-next=NULL;

}

//判斷是否為空函數(shù)

bool EmptyLink(LinkList L)

{

if (NULL==L-next)

{

return true;

}

else

{

return false;

}

}

//獲取函數(shù)

bool GetLink(LinkList L,int i,int e)

{

if (i1)

{

return false;

}

else

{

if (EmptyLink(L))

{

return false;

}

LinkList p=L-next;

int j=1;

while(pji)

{

p=p-next;

j++;

}

if (!p||ji)

{

return false;

}

else

{

e=p-data;

return true;

}

}

}

//插入函數(shù)

void InsertLink(LinkList L,int i,int e)

{

if (i0||iLengthLink(L))

{

printf("Insert error\n");

return;

}

else

{

LinkList p=L;

int j=0;

while(p(ji))

{

p=p-next;

j++;

}

if (!p||ji)

{

printf("Insert error\n");

return;

}

else

{

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

q-data=e;

q-next=p-next;

p-next=q;

}

}

}

//刪除函數(shù)

void DeleteLink(LinkList L,int i,int e)

{

if(i=0||iLengthLink(L))

{

printf("delete error\n");

return;

}

else

{

LinkList p=L;

int j=0;

while(pji-1)

{

p=p-next;

j++;

}

if(!p||ji)

{

printf("please enter i again\n");

return;

}

else

{

LinkList q=p-next;

e=p-next-data;

p-next=p-next-next;

free(q);

}

}

}

//遍歷函數(shù)

void TraverseLink(LinkList L)

{

LinkList p=L-next;

if(!p)

{

printf("the Link L is empty\n");

}

while(p)

{

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

p=p-next;

}

}

//鏈表長度函數(shù)

int LengthLink(LinkList L)

{

int i=0;

LinkList p=L-next;

while(p)

{

p=p-next;

i++;

}

return i;

}

//合并函數(shù)

void MergeLink(LinkList L1,LinkList L2)

{

int i=0,flag=0;

LinkList p1=L1-next,p2=L2-next;

LinkList p=(LinkList)malloc ((LengthLink(L1)+LengthLink(L2)+2)*sizeof(LNode));

LinkList pre=p;

if (!p)

{

printf("MergeLink error\n");

return;

}

p-next=NULL;

while (p1p2)

{

if (p1-data=p2-data)

{

InsertLink(p,i++,p2-data);

p2=p2-next;

}

else

{

InsertLink(p,i++,p1-data);

p1=p1-next;

}

}

while (p1)

{

InsertLink(p,i++,p1-data);

p1=p1-next;

}

while(p2)

{

InsertLink(p,i++,p2-data);

p2=p2-next;

}

while(pre)

{

pre=pre-next;

}

LinkList q=L1;

L1=p;

DestroyLink(q);

DestroyLink(L2);

}

C語言中如何將一個鏈表保存為文件?

第一步:創(chuàng)建文件 比如說 file *fp=fopen(……);

第二步:寫一個循環(huán),把鏈表的節(jié)點一個一個寫進文件里。

第三部:記得關閉文件- -

c語言程序設計中鏈表的保存問題!!

保存指針是沒有任何意義的,因為每次程序動態(tài)分配內(nèi)存的位置都不一樣,所以保存了的指針下次也不會指向正確的地方。想要保存鏈表的話只需要保存鏈表里有用的內(nèi)容把每個鏈表里有用的東西按順序?qū)懭胛募x取的時候重新通過動態(tài)分配內(nèi)存來建立新的鏈表,然后讀入對應的內(nèi)容。不需要知道鏈表的長度,C里面的輸入函數(shù)可以返回成功讀入的內(nèi)容的長度,如果失敗或者是文件到了結(jié)尾就會返回-1。所以只需要看看每次返回的值。如果不是-1,繼續(xù)讀取下一個,否則停止讀取,鏈表終止。

比如:

struct list{

int i;

float f;

char c;

struct list *next;

};

輸出:

struct list *l;

fprintf(fp,"%d %f %c\n",l-i,l-f,l-c);

輸入:

struct list *l=0,*p;

while(1){

if(l=0){

l=(struct list *)malloc(sizeof(struct list));

l-next=0;

p=l;

}

else{

p-next=(struct list *)malloc(sizeof(struct list));

p=p-next;

p-next=0;

}

int m=fscanf(fp,"%d %f %c",(p-i),(p-f),(p-c));

if(m==-1) break;

}

C語言創(chuàng)建了一個鏈表函數(shù),如何保存這個鏈表的頭結(jié)點?

head=(node*)malloc(sizeof(node));/ /創(chuàng)建頭結(jié)點

head-next=NULL;

while(n--)

{

printf("\n請輸入單鏈表第%d個結(jié)點的值:",i++);

scanf("%d",a);

p=(node*)malloc(sizeof(node));

p-info=a;

p-next=head-next;

head-next=p;

}

追問

能不能詳細一點呢

追答

#include "stdio.h"

typedef int datatype;

typedef struct link_node

{

datatype info;

struct link_node *next;

}node;

main()

{

int i=1,n,a;

node *head,*p,*q;

printf("\n本程序建立帶頭結(jié)點的單鏈表:\n");

printf("請輸入你所需要建立帶頭結(jié)點的單鏈表的結(jié)點數(shù):");

scanf("%d",a);

head=(node*)malloc(sizeof(node));

head-next=NULL;

while(a)

{

printf("\n請輸入單鏈表第%d個結(jié)點的值:",i++);

scanf("%d",n);

if(n==0)

break;

p=(node*)malloc(sizeof(node));

p-info=n;

p-next=head-next;

head-next=p;

a--;

}

if(!head-next) printf("\n單鏈表是空的!\n");

else

{

printf("\n單鏈表各個結(jié)點的值分別為:\n");

q=head-next;

while(q)

{

printf("%5d",q-info);/*輸出非空表中第一個結(jié)點的值*/

q=q-next;/*p指向第一個結(jié)點的下一個結(jié)點*/

}

}

printf("\n");

}

網(wǎng)頁標題:C語言單鏈表保存函數(shù) c語言單鏈表頭文件
當前網(wǎng)址:http://www.chinadenli.net/article20/dosiijo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設電子商務全網(wǎng)營銷推廣動態(tài)網(wǎng)站網(wǎng)站導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化