单链表的创建(创建单链表 1.定义结构体 2创建单链表以#结束 3.输入单链表内容L=(2,4,5,6,7)输出)
本文目录
- 创建单链表 1.定义结构体 2创建单链表以#结束 3.输入单链表内容L=(2,4,5,6,7)输出
- 创建一个带头结点的单链表,分别用前插法和后插法创建单链表这个怎么弄
- c语言用函数创建单链表
- 如何创建有N个节点的单链表
- 数据结构C语言单链表的创建,插入删除和合并程序代码
创建单链表 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;}
创建一个带头结点的单链表,分别用前插法和后插法创建单链表这个怎么弄
#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 pprintf("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; }
数据结构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++; }
更多文章:
欢乐海岛小船怎样升级啊?不用消费钻石购买的欢乐海岛建筑有哪些
2024年6月4日 10:08
贵州地税网上申报系统(贵州省地方税务局电子申报系统怎样用是新成立的公司,没有初始数据,还有要导入的文件是什么)
2023年10月17日 08:00
波克斗地主赢话费(波克斗地主赢话费是给冲直卡还是直接把话费冲进手机号里)
2024年5月1日 10:50
内存清理大师下载(我想清理每部手机的所有内存,可以怎么清理呀)
2024年6月28日 17:13
v宝货币是个骗局吗?V宝币这虚拟货币就目前来看是否存在很高的风险,或者说是否完全就是一个金融骗局
2024年5月5日 20:46
史诗之心中文版(赛尔号史诗之心怎么得 打boss能得多少史诗之心)
2024年5月16日 18:54
招行网上银行大众版(招行一卡通网银的专业版和大众版有何区别)
2024年6月24日 00:15
如何做站外SEO优化?站外SEO和站内SEO哪个更重要还有SEM有必要做吗
2024年7月23日 06:24
安卓手机虚拟电脑系统(安卓系统如何安装virtualBox来模拟windows)
2024年5月20日 10:09