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

更多文章:


字体大小在哪里调整(电脑字体大小在哪里调调电脑字体大小的方法)

字体大小在哪里调整(电脑字体大小在哪里调调电脑字体大小的方法)

其实字体大小在哪里调整的问题并不复杂,但是又很多的朋友都不太了解电脑字体大小在哪里调调电脑字体大小的方法,因此呢,今天小编就来为大家分享字体大小在哪里调整的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年11月3日 04:40

网页页面设计的技巧有哪些?急求,jsp采用框架技术设计页面,如何写代码才能实现点击左侧框架内的链接,右侧框架内显示相应网页呢

网页页面设计的技巧有哪些?急求,jsp采用框架技术设计页面,如何写代码才能实现点击左侧框架内的链接,右侧框架内显示相应网页呢

其实设计页面的问题并不复杂,但是又很多的朋友都不太了解网页页面设计的技巧有哪些,因此呢,今天小编就来为大家分享设计页面的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年11月3日 03:00

selection是什么品牌(selection unique是什么葡萄酒)

selection是什么品牌(selection unique是什么葡萄酒)

其实selection是什么品牌的问题并不复杂,但是又很多的朋友都不太了解selection unique是什么葡萄酒,因此呢,今天小编就来为大家分享selection是什么品牌的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分

2026年11月3日 01:50

四分之一x的补码怎么求(计算机组成原理,的原码补码什么,求解现在这些题目都看不懂了)

四分之一x的补码怎么求(计算机组成原理,的原码补码什么,求解现在这些题目都看不懂了)

大家好,如果您还对四分之一x的补码怎么求不太了解,没有关系,今天就由本站为大家分享四分之一x的补码怎么求的知识,包括计算机组成原理,的原码补码什么,求解现在这些题目都看不懂了的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年11月2日 23:50

interpl(MATLAB中插值函数interpl怎么定义)

interpl(MATLAB中插值函数interpl怎么定义)

各位老铁们,大家好,今天由我来为大家分享interpl,以及MATLAB中插值函数interpl怎么定义的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年11月2日 23:30

java代码入门教程(零基础自学Java需要什么基础)

java代码入门教程(零基础自学Java需要什么基础)

大家好,如果您还对java代码入门教程不太了解,没有关系,今天就由本站为大家分享java代码入门教程的知识,包括零基础自学Java需要什么基础的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年11月2日 23:00

path的音标(音标[pa:θ]是什么单词)

path的音标(音标[pa:θ]是什么单词)

大家好,关于path的音标很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于音标[pa:θ]是什么单词的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年11月2日 22:50

collects(collect怎么读)

collects(collect怎么读)

大家好,今天小编来为大家解答以下的问题,关于collects,collect怎么读这个很多人还不知道,现在让我们一起来看看吧!

2026年11月2日 21:10

四舍五入用哪个函数(用于进行四舍五入的数学函数是以下哪一项)

四舍五入用哪个函数(用于进行四舍五入的数学函数是以下哪一项)

各位老铁们,大家好,今天由我来为大家分享四舍五入用哪个函数,以及用于进行四舍五入的数学函数是以下哪一项的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年11月2日 20:10

手机excel表格制作(手机上怎么做表格)

手机excel表格制作(手机上怎么做表格)

各位老铁们,大家好,今天由我来为大家分享手机excel表格制作,以及手机上怎么做表格的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年11月2日 20:00

最近更新

pci express(pci express是什么接口)
2026-11-03 04:20:29 浏览:0
免费 虚拟主机(免费云主机哪个好)
2026-11-03 03:30:30 浏览:0
热门文章

新站如何通过网站维护提升SEO排名
2026-10-13 20:56:21 浏览:6
sql server2008下载地址(如何下载SQL Server 2008 R2 SP2免费版)
2026-10-05 05:30:29 浏览:6
标签列表