单链表的创建(创建单链表 1.定义结构体 2创建单链表以#结束 3.输入单链表内容L=(2,4,5,6,7)输出)

:暂无数据 2026-08-27 00:00:06 :3

单链表的创建(创建单链表 1.定义结构体 2创建单链表以#结束 3.输入单链表内容L=(2,4,5,6,7)输出)

本篇文章给大家谈谈单链表的创建,以及创建单链表 1.定义结构体 2创建单链表以#结束 3.输入单链表内容L=(2,4,5,6,7)输出对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

本文目录

创建单链表 1.定义结构体 2创建单链表以#结束 3.输入单链表内容L=(2,4,5,6,7)输出

#include《stdio.h》
#include《stdlib.h》 
typedef struct Node{
char data;
struct Node* next;
}Node, *pNode;
int main()
{
pNode pHead = (pNode)malloc(sizeof(Node));
pHead-》next = NULL;
pNode pTemp = pHead, p = NULL;
char temp = 0;
scanf("%c",&temp);
while(temp != ’#’){
pTemp-》data = temp;
pTemp-》next = (pNode)malloc(sizeof(Node));
pTemp = pTemp-》next;
pTemp-》next = NULL;
scanf("%c",&temp);
}
pTemp = pHead;
p = pHead;
while(pTemp-》next){
printf("%c",pTemp-》data);
pTemp = pTemp-》next;
free(p);
p=pTemp;
}
free(pTemp);
    return 0;
}

数据结构C语言单链表的创建,插入删除和合并程序代码

你看这个应该满足要求吧。我把三种循环方式都用上了:
#include《stdio.h》
#include《math.h》
int isprime(int n)
{
int i,t;
if(n==2)
return 1;
if(n%2==0 || n《2)
return 0;
for(i=3,t=(int)sqrt(n);i《=t;i+=2)
{
if(n%i==0)
return 0;
}
return 1;
}
void main()
{
int i,a,n;
i=0;
do
{
printf("Input an integer (》=1):");
scanf("%d",&a);
if(a》=1)
break;
}while(++i《3);
if(i==3) exit(0);
printf("prime submultiples:\n");
i=1;
n=0;
while(i《=a)
{
if(a%i==0)
if(isprime(i))
{
printf("%d ",i);
n++;
if(n%10==0)
printf("\n");
}
i++;
}

创建一个带头结点的单链表,分别用前插法和后插法创建单链表这个怎么弄

#include 《stdio.h》
#include 《stdlib.h》
typedef struct node
{
int val;
struct node *next;
}NODE;
NODE *create_linklist(int len,int *a)
{
int i;
NODE *p = (NODE *)malloc(sizeof(NODE));
NODE *head = p;
NODE *q = NULL;
for (i = 0; i 《 len; ++i){
q = (NODE *)malloc(sizeof(NODE));
q-》val = *(a+i);
p-》next = q;
p = q;
}
p-》next = NULL;
return head;
}
NODE *find_in_linklist(NODE *pnode,int val)
{
NODE *p = NULL;
if (!pnode-》next){
return NULL;
}
p = pnode-》next;
while(p){
if(val == p-》val){
return p;
}
p = p-》next;
}
return NULL;
}
int delete_node(NODE *pnode,NODE *pdel)
{
NODE *p = pnode-》next;
NODE *q = pnode;
while(p){
if (p == pdel){
q-》next = p-》next;
free(p);
return 1;
}
p = p-》next;
q = q-》next;
}
return 0;
}
void print_linklist(NODE *pnode){
NODE *p = pnode-》next;
while(p){
printf("%d ", p-》val);
p = p-》next;
}
printf("\n");
}
int main(int argc, char const *argv)
{
/* code */
int a = {1,2,3,5};
NODE *p = create_linklist(4,a);
NODE *q = find_in_linklist(p,2);
print_linklist(p);
if(q){
if(delete_node(p,q)){
printf("delete successful!\n");
}
else{
printf("delete failed!\n");
}
}
print_linklist(p);
return 0;
}

c语言用函数创建单链表

#include《stdio.h》
#include《stdlib.h》
//链表定义
typedef int ElemType;
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;
/*************************************
* 链表函数 *
*************************************/
//链表初始化
void InitLink(LinkList &L);
//创建函数,尾插法
void CreateLink_T(LinkList &L,int n);
//创建函数,头插法
void CreateLink_H(LinkList &L,int n);
//销毁函数
void DestroyLink(LinkList &L);
//判断是否为空函数
bool EmptyLink(LinkList &L);
//获取函数
bool GetLink(LinkList &L,int i,int & e);
//插入函数
void InsertLink(LinkList &L,int i,int e);
//删除函数
void DeleteLink(LinkList &L,int i,int &e);
//遍历函数
void TraverseLink(LinkList &L);
//链表长度函数
int LengthLink(LinkList &L);
//合并函数
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);
}
//创建函数,尾插法
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(n《1)
{
printf("n must 》=1\n");
return ;
}
else
{
// L=(LinkList)malloc(sizeof(LNode));
L-》next=NULL;
for(int i=0;i《n;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;
}
}
}
//创建函数,头插法
void CreateLink_H(LinkList &L,int n)
{
if (n《1)
{
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;i《n;i++)
{
LinkList p=(LinkList)malloc(sizeof(LNode));
printf("enter the data:\t");
scanf("%d",&(p-》data));
pre-》next=p;
pre=p;
}
pre-》next=NULL;
}
}
//销毁函数
void DestroyLink(LinkList &L)
{
LinkList q=L,p=L;
while (p)
{
q=p;
p=p-》next;
free(q);
}
L-》next=NULL;
}
//判断是否为空函数
bool EmptyLink(LinkList &L)
{
if (NULL==L-》next)
{
return true;
}
else
{
return false;
}
}
//获取函数
bool GetLink(LinkList &L,int i,int& e)
{
if (i《1)
{
return false;
}
else
{
if (EmptyLink(L))
{
return false;
}
LinkList p=L-》next;
int j=1;
while(p&&j《i)
{
p=p-》next;
j++;
}
if (!p||j》i)
{
return false;
}
else
{
e=p-》data;
return true;
}
}
}
//插入函数
void InsertLink(LinkList &L,int i,int e)
{
if (i《0||i》LengthLink(L))
{
printf("Insert error\n");
return;
}
else
{
LinkList p=L;
int j=0;
while(p&&(j《i))
{
p=p-》next;
j++;
}
if (!p||j》i)
{
printf("Insert error\n");
return;
}
else
{
LinkList q=(LinkList)malloc(sizeof(LNode));
q-》data=e;
q-》next=p-》next;
p-》next=q;
}
}
}
//删除函数
void DeleteLink(LinkList &L,int i,int &e)
{
if(i《=0||i》LengthLink(L))
{
printf("delete error\n");
return;
}
else
{
LinkList p=L;
int j=0;
while(p&&j《i-1)
{
p=p-》next;
j++;
}
if(!p||j》i)
{
printf("please enter i again\n");
return;
}
else
{
LinkList q=p-》next;
e=p-》next-》data;
p-》next=p-》next-》next;
free(q);
}
}
}
//遍历函数
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;
}
}
//链表长度函数
int LengthLink(LinkList &L)
{
int i=0;
LinkList p=L-》next;
while(p)
{
p=p-》next;
i++;
}
return i;
}
//合并函数
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 (p1&&p2)
{
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);
}

如何创建有N个节点的单链表

#include 《stdio.h》  
#include 《stdlib.h》  
  
//类型定义typedef在使用的时候如果直接按下面的方式定义,是错误的:  
/*typedef struct Node 
{ 
   int data; 
   Node * next; 
}; 
*/  
//应该定义为:  
typedef struct node  
{  
   int data;  
   struct node * next;  
}Node;  
  
/*宏定义的后面一定“不能”有分号“;”*/  
#define LEN sizeof(Node)  
#define NULL 0  
main()  
{  
  Node* create(int n);  
  Node* p;  
  p = create(3);  
  while(p != NULL)  
  {  
    printf("%d, ",p-》data);  
    p = p-》next;  
  }  
  printf("\n");  
}  
Node* create(int n)  
{  
  int i;  
  //定义指针变量时,下面的定义方式是错误的:  
  //node* head, p1, p2;  
  Node *head, *p1, *p2;  
  //head = p2 = NULL;  
  for(i=0;i《n;i++)  
  {  
     p1 = (Node*)malloc(LEN);  
     printf("Please input the data of your node: \n");  
     scanf("%d",&p1-》data);  
     if(i==0)  
     p2 = head = p1;  
     else  
     {  
       p2-》next = p1;  
     }  
     p1-》next = NULL;  
     p2 = p1;  
  }  
  return head;  
}

关于单链表的创建,创建单链表 1.定义结构体 2创建单链表以#结束 3.输入单链表内容L=(2,4,5,6,7)输出的介绍到此结束,希望对大家有所帮助。

单链表的创建(创建单链表 1.定义结构体 2创建单链表以#结束 3.输入单链表内容L=(2,4,5,6,7)输出)

本文编辑:admin

更多文章:


element ui面试题(用element-ui ELDialog和ELTable遇见的坑)

element ui面试题(用element-ui ELDialog和ELTable遇见的坑)

各位老铁们好,相信很多人对element ui面试题都不是特别的了解,因此呢,今天就来为大家分享下关于element ui面试题以及用element-ui ELDialog和ELTable遇见的坑的问题知识,还望可以帮助大家,解决大家的一些

2026年11月7日 04:40

blob视频下载器(blob链接的图片如何调用下载)

blob视频下载器(blob链接的图片如何调用下载)

各位老铁们,大家好,今天由我来为大家分享blob视频下载器,以及blob链接的图片如何调用下载的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年11月7日 03:30

中文自动翻译成英语的输入法(有没有一种输入法能将打出来的中文自动变成英文)

中文自动翻译成英语的输入法(有没有一种输入法能将打出来的中文自动变成英文)

各位老铁们,大家好,今天由我来为大家分享中文自动翻译成英语的输入法,以及有没有一种输入法能将打出来的中文自动变成英文的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们

2026年11月7日 02:10

equals to(为什么有些英文句子要用的是“equals to that of” 这个that和of之间还可以加名词吗)

equals to(为什么有些英文句子要用的是“equals to that of” 这个that和of之间还可以加名词吗)

其实equals to的问题并不复杂,但是又很多的朋友都不太了解为什么有些英文句子要用的是“equals to that of” 这个that和of之间还可以加名词吗,因此呢,今天小编就来为大家分享equals to的一些知识,希望可以帮助

2026年11月7日 01:50

default values(电脑开机后出现all settings was reset to default values.)

default values(电脑开机后出现all settings was reset to default values.)

其实default values的问题并不复杂,但是又很多的朋友都不太了解电脑开机后出现all settings was reset to default values.,因此呢,今天小编就来为大家分享default values的一些知识

2026年11月7日 01:20

structured reviewing翻译(软件测试的英文翻译)

structured reviewing翻译(软件测试的英文翻译)

大家好,关于structured reviewing翻译很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于软件测试的英文翻译的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位

2026年11月7日 00:50

网站模板下载好以后(动态网站模板下载后怎么用)

网站模板下载好以后(动态网站模板下载后怎么用)

“网站模板下载好以后”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看网站模板下载好以后(动态网站模板下载后怎么用)!

2026年11月6日 22:50

选项卡的作用(excel中的“数字”选项卡的功能)

选项卡的作用(excel中的“数字”选项卡的功能)

本篇文章给大家谈谈选项卡的作用,以及excel中的“数字”选项卡的功能对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年11月6日 22:20

vb手机版下载(有谁可以告诉我vb在哪里下载)

vb手机版下载(有谁可以告诉我vb在哪里下载)

“vb手机版下载”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看vb手机版下载(有谁可以告诉我vb在哪里下载)!

2026年11月6日 21:50

指针变量和指针的关系(变量指针和指针变量有什么区别和联系)

指针变量和指针的关系(变量指针和指针变量有什么区别和联系)

大家好,如果您还对指针变量和指针的关系不太了解,没有关系,今天就由本站为大家分享指针变量和指针的关系的知识,包括变量指针和指针变量有什么区别和联系的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年11月6日 21:30

最近更新

红米4x尺寸(红米4x参数)
2026-11-07 04:50:20 浏览:0
element ui面试题(用element-ui ELDialog和ELTable遇见的坑)
2026-11-07 04:40:07 浏览:0
imei怎么查看(手机IMEI码如何查询)
2026-11-07 04:00:01 浏览:0
热门文章

新站如何通过网站维护提升SEO排名
2026-10-13 20:56:21 浏览:6
标签列表