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

c語(yǔ)言創(chuàng)建單鏈表主函數(shù),c語(yǔ)言創(chuàng)建單向鏈表

用c語(yǔ)言創(chuàng)建鏈表

主函數(shù)這里

創(chuàng)新互聯(lián)主營(yíng)漢臺(tái)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,手機(jī)APP定制開發(fā),漢臺(tái)h5小程序開發(fā)搭建,漢臺(tái)網(wǎng)站營(yíng)銷推廣歡迎漢臺(tái)等地區(qū)企業(yè)咨詢

Linklist?List;

printf("輸入創(chuàng)建鏈表的長(zhǎng)度:");

scanf("%d",num);

CreateList_H(List,num); //創(chuàng)建鏈表

改為?

LNode?List;

printf("輸入創(chuàng)建鏈表的長(zhǎng)度:");

scanf("%d",num);

CreateList_H(List,num); //創(chuàng)建鏈表

函數(shù)內(nèi)在堆上分配好內(nèi)存,但是 沒(méi)有傳遞到棧上

另外?你的變量名很迷人

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

#includestdio.h

#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);

//鏈表長(zhǎng)度函數(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;

}

}

//鏈表長(zhǎng)度函數(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語(yǔ)言主函數(shù)建立一條單向鏈表

#include stdio.h

#include malloc.h#define N 5

typedef struct LNode

{

double data;

long number;

struct LNode *next;

}LNode,*LinkList;LinkList fun(LinkList L,double *aver)

{

LinkList p,q,h;

double sum=0;

p=L-next;

while(p!=NULL)

{

sum+=p-data;

p=p-next;

}

sum=sum/N;

*aver = sum;

printf("aver=%.2f\n",*aver);

p=L-next;

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

h-next = NULL;

while(p!=NULL)

{

if(p-data=sum)

{

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

q-number = p-number;

q-data=p-data;

q-next = h-next;

h-next = q;

}

p=p-next;

}

return h;

}

void main()

{

LinkList L,p,h;

int i;

double aver;

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

L-next = NULL;

printf("創(chuàng)建鏈表...\n輸入學(xué)生的學(xué)號(hào)和成績(jī):\n");

for( i=0;iN;i++)//逆位序輸入N個(gè)元素的值,建立帶頭結(jié)點(diǎn)的單鏈表L

{

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

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

p-next=L-next;

L-next=p;

}

h=fun(L,aver);

printf("平均成績(jī)?yōu)椋?.2f\n",aver);

p=h-next;

printf("大于或等于平均成績(jī)的學(xué)生信息...\n");

printf("學(xué)號(hào) 成績(jī)\n");

while(p!=NULL)

{

printf("%-12d %-3.2f\n",p-number,p-data);

p=p-next;

}

printf("\n");

}

關(guān)于C語(yǔ)言單向鏈表,編寫一個(gè)主函數(shù),要求用函數(shù)實(shí)現(xiàn)如下功能:

#includeiostream

using?namespace?std;

class?Node?{

public:

int?data;

Node*?next;

Node(int?_data)?{

data?=?_data;

next?=?NULL;

}

};

class?LinkList?{

private:

Node*?head;

public:

LinkList()?{

head?=?NULL;

}

void?insert(Node?*node,?int?index)?{

if?(head?==?NULL)?{

head?=?node;

return;

}

if?(index?==?0)?{

node-next?=?head;

head?=?node;

return;

}

Node?*current_node?=?head;

int?count?=?0;

while?(current_node-next?!=?NULL??count??index?-?1)?{

current_node?=?current_node-next;

count++;

}

if?(count?==?index?-?1)?{

node-next?=?current_node-next;

current_node-next?=?node;

}

}

void?output()?{

if?(head?==?NULL)?{

return;

}

Node?*current_node?=?head;

while?(current_node?!=?NULL)?{

cout??current_node-data??"?";

current_node?=?current_node-next;

}

cout??endl;

}

void?delete_node(int?index)?{

if?(head?==?NULL)?{

return;

}

Node?*current_node?=?head;

int?count?=?0;

if?(index?==?0)?{

head?=?head-next;

delete?current_node;

return;

}

while?(current_node-next?!=?NULL??count??index?-1)?{

current_node?=?current_node-next;

count++;

}

if?(count?==?index?-?1??current_node-next?!=?NULL)?{

Node?*delete_node?=?current_node-next;

current_node-next?=?delete_node-next;

delete?delete_node;

}

}

void?reverse(){

if(head?==?NULL){

return;

}

Node?*next_node,*current_node;

current_node?=?head-next;

head-next?=?NULL;

while(current_node?!=?NULL){

next_node?=?current_node-next;

current_node-next?=?head;

head?=?current_node;

current_node?=?next_node;

}

}

};

int?main()?{

LinkList?linklist;

for?(int?i?=?1;?i?=?10;?i++)?{

Node?*node?=?new?Node(i);

linklist.insert(node,?i?-?1);

}

linklist.output();

linklist.delete_node(3);

linklist.output();

linklist.reverse();

linklist.output();

return?0;

}

C語(yǔ)言如何創(chuàng)建單鏈表?

C語(yǔ)言創(chuàng)建單鏈表如下:

#include"stdio.h"

#include"stdlib.h"

#include"malloc.h"

#include "iostream.h"

typedef struct node

{

int??data;

node * next;

}node , * List;

void create(int n)

{

int c;

List s,L;

L=(List)malloc(sizeof(node));

L-next=NULL;

printf("請(qǐng)輸入第1個(gè)數(shù)據(jù):");

scanf("%d",c);

L-data=c;

for(int i=2;i=n;i++)

{

s=(List)malloc(sizeof(node));

printf("請(qǐng)輸入第%d個(gè)數(shù)據(jù):",i);

scanf("%d",c);

s-data=c;

s-next=L;

L-next =s;

}

printf("鏈表創(chuàng)建成功!");

}

void main()

{

int n;

printf("請(qǐng)你輸入鏈表的個(gè)數(shù):");

scanf("%d",n);

create(n);

}

單鏈表創(chuàng)建方法:

單鏈表的建立有頭插法、尾插法兩種方法。

1. 頭插法

單鏈表是用戶不斷申請(qǐng) 存儲(chǔ)單元和改變鏈接關(guān)系而得到的一種特殊 數(shù)據(jù)結(jié)構(gòu),將鏈表的左邊稱為鏈頭,右邊稱為鏈尾。頭插法建單鏈表是將鏈表右端看成固定的,鏈表不斷向左延伸而得到的。頭插法最先得到的是尾結(jié)點(diǎn)。

由于鏈表的長(zhǎng)度是隨機(jī)的,故用一個(gè)while循環(huán)來(lái)控制鏈表中結(jié)點(diǎn)個(gè)數(shù)。假設(shè)每個(gè)結(jié)點(diǎn)的值都大于O,則循環(huán)條件為輸入的值大于o。申請(qǐng) 存儲(chǔ)空間可使用malloc()函數(shù)實(shí)現(xiàn),需設(shè)立一申請(qǐng)單元 指針,但malloc()函數(shù)得到的指針并不是指向?結(jié)構(gòu)體的指針,需使用 強(qiáng)制類型轉(zhuǎn)換,將其轉(zhuǎn)換成結(jié)構(gòu)體型指針。剛開始時(shí),鏈表還沒(méi)建立,是一空鏈表,head 指針為NULL。

鏈表建立的過(guò)程是申請(qǐng)空間、得到數(shù)據(jù)、建立鏈接的循環(huán)處理過(guò)程。

2. 尾插法

若將鏈表的左端固定,鏈表不斷向右延伸,這種建立鏈表的方法稱為尾插法。尾插法建立鏈表時(shí),頭 指針固定不動(dòng),故必須設(shè)立一個(gè)搜索指針,向鏈表右邊延伸,則整個(gè)算法中應(yīng)設(shè)立三個(gè)鏈表指針,即頭指針head、搜索指針p2、申請(qǐng)單元指針pl。尾插法最先得到的是?頭結(jié)點(diǎn)。

名稱欄目:c語(yǔ)言創(chuàng)建單鏈表主函數(shù),c語(yǔ)言創(chuàng)建單向鏈表
文章來(lái)源:http://chinadenli.net/article22/dsgdhjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)網(wǎng)站設(shè)計(jì)ChatGPT微信公眾號(hào)做網(wǎng)站品牌網(wǎng)站制作

廣告

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

搜索引擎優(yōu)化