4月15日 单链表(未完成)
时间:2019-04-15
本文章向大家介绍4月15日 单链表(未完成),主要包括4月15日 单链表(未完成)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 #include"stdio.h" 2 #include"stdlib.h" 3 typedef int DataType; 4 typedef struct node 5 { 6 DataType data; 7 struct node *next; 8 }LinkNode,*LinkList; 9 int count; 10 LinkList L; 11 LinkList initList(LinkList &L) 12 { 13 L = (LinkNode*)malloc(sizeof(LinkNode)); 14 L->next = NULL; 15 return L; 16 } 17 void creatList(LinkList &L , int flag) 18 { 19 int number; 20 printf("请输入第%d个元素:",count+1); 21 scanf("%d",&number); 22 23 if(number == flag) 24 { 25 L = NULL; 26 } 27 else 28 { 29 L = (LinkNode*)malloc(sizeof(LinkNode)); 30 L->data = number ; 31 count++; 32 creatList(L->next , flag); 33 } 34 } 35 LinkNode *locate(LinkList &L , int i) 36 { 37 int count = 0; 38 LinkNode *p = L; 39 while(p != NULL && count < i-1) 40 { 41 count++; 42 p = p->next; 43 } 44 if(p == NULL) 45 { 46 printf("该链表中没有该元素"); 47 return p; 48 } 49 else 50 { 51 return p; 52 } 53 54 } 55 //目前该函数还有bug 还需要改进 56 void instNode(LinkList &L , int i , int x) 57 { 58 if(i<1||i>count) 59 { 60 printf("输入错误 不能插入!"); 61 return ; 62 } 63 LinkNode *newNode = (LinkNode*)malloc(sizeof(LinkNode)); 64 if(i == 1) 65 { 66 LinkNode *p = locate(L->next , i); 67 newNode->data = x; 68 newNode->next = p; 69 L->next = newNode; 70 } 71 else 72 { 73 LinkNode *p = locate(L->next , i-1);//p指向第i-1个节点 74 LinkNode *q = p->next;//q指向的p的下一个节点 就是第i个节点 75 newNode->data = x; 76 p->next = newNode; 77 newNode->next = q; 78 count++; 79 printf("插入成功!\n"); 80 } 81 } 82 void show(LinkList &L) 83 { 84 int count = 0; 85 LinkNode *p = L; 86 while(p != NULL) 87 { 88 count++; 89 printf("第%d个元素为:%d\n",count , p->data); 90 p = p->next; 91 } 92 } 93 void prompt() 94 { 95 printf("请输入1-5\n"); 96 printf("1.初始化链表\n"); 97 printf("2.创建链表\n"); 98 printf("3.定位元素\n"); 99 printf("4.插入一个元素\n"); 100 printf("5.输出所有元素\n"); 101 } 102 void menu() 103 { 104 int flag; 105 LinkNode *p = L; 106 int i; 107 int x; 108 int n; 109 system("cls"); 110 prompt(); 111 scanf("%d",&n); 112 switch(n) 113 { 114 case 1: 115 system("cls"); 116 initList(L); 117 printf("初始化成功!\n"); 118 system("pause"); 119 menu(); 120 break; 121 case 2: 122 system("cls"); 123 printf("请输入您需要使用什么数字结束输入:"); 124 scanf("%d",&flag); //定义输入结束符 125 creatList(p->next , flag); 126 system("cls"); 127 printf("创建成功!\n"); 128 system("pause"); 129 menu(); 130 break; 131 case 3: 132 system("cls"); 133 printf("请输入您需要定位的元素的序号:"); 134 scanf("%d",&i); 135 printf("该元素地址为:%d\n",locate(L->next , i)); 136 system("pause"); 137 system("cls"); 138 system("pause"); 139 menu(); 140 break; 141 case 4: 142 system("cls"); 143 printf("请输入您需要插入的位置和数值:"); 144 scanf("%d %d",&i , &x); 145 instNode(L->next , i , x); 146 system("pause"); 147 system("cls"); 148 menu(); 149 break; 150 case 5: 151 system("cls"); 152 show(L->next); 153 system("pause"); 154 system("cls"); 155 menu(); 156 break; 157 } 158 } 159 main() 160 { 161 menu(); 162 }
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法