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

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

单链表的创建(创建单链表 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

更多文章:


checked in(check in和check out的区别)

checked in(check in和check out的区别)

本篇文章给大家谈谈checked in,以及check in和check out的区别对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年9月7日 01:20

java经典上机编程题(java上机题 请问这道题应该怎么写)

java经典上机编程题(java上机题 请问这道题应该怎么写)

大家好,java经典上机编程题相信很多的网友都不是很明白,包括java上机题 请问这道题应该怎么写也是一样,不过没有关系,接下来就来为大家分享关于java经典上机编程题和java上机题 请问这道题应该怎么写的一些知识点,大家可以关注收藏,免

2026年9月7日 01:10

影视剧中有哪些剧情颠覆了你的三观?金庸的武侠小说《白马啸西风》为什么没有被拍成电影或者电视剧

影视剧中有哪些剧情颠覆了你的三观?金庸的武侠小说《白马啸西风》为什么没有被拍成电影或者电视剧

各位老铁们,大家好,今天由我来为大家分享白马影视,以及影视剧中有哪些剧情颠覆了你的三观的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年9月7日 00:30

mysql varchar和char的区别(mysql中char、varchar、nvarchar区别)

mysql varchar和char的区别(mysql中char、varchar、nvarchar区别)

各位老铁们,大家好,今天由我来为大家分享mysql varchar和char的区别,以及mysql中char、varchar、nvarchar区别的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大

2026年9月7日 00:10

linux命令的选项和参数(linux为什么要有参数和选项)

linux命令的选项和参数(linux为什么要有参数和选项)

各位老铁们好,相信很多人对linux命令的选项和参数都不是特别的了解,因此呢,今天就来为大家分享下关于linux命令的选项和参数以及linux为什么要有参数和选项的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年9月6日 20:20

arm汇编指令流程图(arm 汇编指令)

arm汇编指令流程图(arm 汇编指令)

大家好,如果您还对arm汇编指令流程图不太了解,没有关系,今天就由本站为大家分享arm汇编指令流程图的知识,包括arm 汇编指令的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月6日 18:40

perseverance的意思(preseverance的意思)

perseverance的意思(preseverance的意思)

大家好,如果您还对perseverance的意思不太了解,没有关系,今天就由本站为大家分享perseverance的意思的知识,包括preseverance的意思的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月6日 18:30

react native和uniapp(h5和uniapp和react性能)

react native和uniapp(h5和uniapp和react性能)

大家好,如果您还对react native和uniapp不太了解,没有关系,今天就由本站为大家分享react native和uniapp的知识,包括h5和uniapp和react性能的问题都会给大家分析到,还望可以解决大家的问题,下面我们就

2026年9月6日 18:00

mysql查看有哪些表(在mysql里面怎么查看数据库里面有多少表)

mysql查看有哪些表(在mysql里面怎么查看数据库里面有多少表)

大家好,mysql查看有哪些表相信很多的网友都不是很明白,包括在mysql里面怎么查看数据库里面有多少表也是一样,不过没有关系,接下来就来为大家分享关于mysql查看有哪些表和在mysql里面怎么查看数据库里面有多少表的一些知识点,大家可以

2026年9月6日 17:40

parsefloat()(html里的parsefloat什嘛意思)

parsefloat()(html里的parsefloat什嘛意思)

大家好,如果您还对parsefloat()不太了解,没有关系,今天就由本站为大家分享parsefloat()的知识,包括html里的parsefloat什嘛意思的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月6日 16:30

最近更新

batterymonitorwidgetpro汉化版(如何校正安卓软件 battery monitor widget 软件的充电电流)
2026-09-07 03:10:29 浏览:0
手机加速软件(加速器哪个好用)
2026-09-07 02:50:29 浏览:0
热门文章

yoga pro 14s carbon(yoga14s接口类型)
2026-07-03 17:50:01 浏览:5
domino directory(帮我翻译一下Recipient’s Domino Directory entry does not specify a valid Notes mail file)
2026-08-03 19:20:01 浏览:4
标签列表