链表的整表的创建

/这里是链表的创建其包含的是头指针phead,头节点,以及尾节点p->next = NULL 为链表创建结束标志。

/判断指针为空十分重要,当然也不能忘了释放,代码是:

if(head !=NULL){
free(head);
head = NULL; 
}
head =
(SLNode*)malloc(sizeof(SLNode));
head->data=x;
if(head !=NULL){
r =
head;
cout<<"空间成功申请!"<<endl;

/创建一个指针*p,*s来实现创建,代码是:

p = (SLNode*)malloc(sizeof(SLNode));
p->data = x;
r->next =
p;
r = p;

/判断是否继续执行创建,输入新的数据(这里写的不好,仅供参考),代码是:

cout<<"是否继续输入:Y/N"<<endl;
cin>>c;
if(c == ‘Y‘||c ==
‘y‘){
continue;
}else{
   r->next= NULL;

}

//先建立一个完整的链表,然后对其进行增删改查
//在这里我们采用尾插入的方式来对其进行建立链表
#include
<iostream>
using namespace std;
typedef int DataType;
//声明节点

typedef struct node{
DataType data;
struct node
*next;
}SLNode;
//创建头指针
SLNode *InitiateHead(SLNode*phead){
phead
= (SLNode*)malloc(sizeof(SLNode));
phead->next = NULL;
return
phead;
}
SLNode * Create_List(SLNode *head){//头节点开始的申请空间
SLNode
*r,*p;
int x;
char c ;
if(head !=NULL){

free(head);
head = NULL;
}
head =
(SLNode*)malloc(sizeof(SLNode));
head->data=x;
if(head
!=NULL){
r = head;
cout<<"空间成功申请!"<<endl;

}
cout<<"创建链表:"<<endl;
while(c !=NULL||c!=‘n‘){

cout<<"请输入:";cin>>x;
p =
(SLNode*)malloc(sizeof(SLNode));
p->data = x;

r->next = p;
r = p;

cout<<"是否继续输入:Y/N"<<endl;
cin>>c;
if(c ==
‘Y‘||c == ‘y‘){
continue;
}else{

r->next= NULL;
cout<<"首地址1:"<<head<<endl;///

cout<<"链表创建完成!"<<endl;
return head;

}

}
}
void OutPut_List(SLNode *phead){

SLNode *p;
// cout<<"首地址3:"<<phead<<endl;///

//cout<<"首地址4:"<<phead->next<<endl;
p =
phead->next->next;

//cout<<"data:"<<p->data<<endl;
int i = 1;

while(p!=NULL){

cout<<"第"<<i<<"一个元素:"<<p->data<<endl;

i++;
p = p->next;
}
}
void menu(){

cout<<"_________________________________________________________"<<endl;

cout<<"|*******************************************************|"<<endl;

cout<<"|*****************欢迎进入菜单选项*.********************|"<<endl;

cout<<"|*****************进入初始化阶段请稍后....**************|"<<endl;

cout<<"|*****************1、创建链表
***************|"<<endl;
cout<<"|*****************2、输出链表
*****************|"<<endl;

cout<<"|*******************************************************|"<<endl;

cout<<"_________________________________________________________"<<endl;
}
void
operation(SLNode *phead){
SLNode *p,*p1;
int input;

cout<<"请选择:"<<endl;
cin>>input;

//p1=InitiateHead(phead);//头指针
switch(input){
case
1:p1=Create_List(p);/* cout<<"首地址2:"<<p1<<endl;*/
phead->next=p1; phead->next=p1;menu();operation(phead); break;
case
2:cout<<"输出已创建好的链表中的数据:"<<endl;OutPut_List(phead);menu();operation(phead);break;


}
}

int main(){
SLNode
*phead;
phead=InitiateHead(phead);
cout<<"首地址2.1:"<<phead<<endl;
menu();
operation(phead);

return 0;

}

链表的整表的创建,布布扣,bubuko.com

时间: 2024-10-21 12:15:22

链表的整表的创建的相关文章

java实现单链表的整表创建

package com.java.dataStruct; public class Node<E> { E item; Node next; public Node(){ } public Node(E element){ this.item = element; } public Node(E element, Node next){ this.item = element; this.next = next; } } Node p; Node L = new Node<String&

单链表的整表删除

单链表整表删除的算法思路: 声明结点 p 和 q 将第一结点赋值给 p ,下一个结点赋值给 q 循环执行释放 p 和将 q 赋值给 p 的操作 代码实现 Status ClearList(LinkList *L) { LinkList p,q; p = (*L)->next; while(p) { q = p->next; free(p); p = q; } (*L)->next = NULL; return OK; }

数据库与表的创建及增删改查

TSQL语句: [“.sql”结尾的文件是:保存用户对数据库和表操作的过程代码.注意:随时 ctrl+s 保存一下 字段名就是列名!] 一.数据库 1.创建数据库: create database [数据库名称],选中该行语句,点击“执行”或者选中按 F5,消息返回“命令已成功完成”,新数据库就创建完成啦! 如果你在“对象资源管理器”中找不到新建的数据库,那就右击“数据库”,点击“刷新”,就可以看到了 2.删除数据库: drop database [要删除的数据库],选中该行语句,点击“执行”,

SQL笔记-第二章,数据表的创建和管理

数据类型 分5类:整数.数值.字符相关.日期时间以及二进制 1.整数 数据库系统 类型 说明 MYSQL tinyint [unsigned] 一个很小的整数.有符号的范围是-128 到127,无符号的范围是0 到255. smallint [unsigned] 一个小整数.有符号的范围是-32768到32767,无符号的范围是0 到65535. mediumint [unsigned] 一个中等大小整数.有符号的范围是-8388608到8388607,无符号的范围是0到16777215. in

MYSQL千万级数据表,创建表及字段扩展的几条建议

MYSQL千万级数据表,创建表及字段扩展的几条建议 一:概述 当我们设计一个系统时,需要考虑到系统的运行一段时间后,表里数据量大约有多少,如果在初期,就能估算到某几张表数据量非常庞大时(比如聊天消息表),就要把表创建好,这篇文章从创建表,增加数据,以及字段扩展,这几个方面来给出建议. 二:创建表 假如现在我们需要创建IM项目中的聊天消息表,这个表数据量大,读操作远超过写操作,我们都知道,mysql常用的数据库引擎主要有innodb,myisam,这两个数据库引擎主要区别是,innodb支持事务,

Oracle表的创建及管理

对于数据库而言实际上每一张表都表示的是一个数据库的对象,而数据库对象指的就是DDL定义的所有操作,例如:表.视图.索引.序列.约束等等,都属于对象的操作,所以表的建立就是对象的建立,而对象的操作主要分为以下三类语法: 创建对象:CREATE 对象名称 -: 删除对象:DROP 对象名称 -: 修改对象:ALTER 对象名称 -: 一.常用的数据字段 每一张数据表实际上都是由若干个字段所组成,而每一个字段都会有其对应的数据类型,而在Oracle之中,常用的数据类型有如下几种: № 数据类型 关键字

基于链式存储结构的图书信息表的创建和输出

描述 定义一个包含图书信息(书号.书名.价格)的链表,读入相应的图书数据来完成图书信息表的创建,然后统计图书表中的图书个数,同时逐行输出每本图书的信息. 输入 输入n+1行,其中前n行是n本图书的信息(书号.书名.价格),每本图书信息占一行,书号.书名.价格用空格分隔,价格之后没有空格.最后第n+1行是输入结束标志:0 0 0(空格分隔的三个0).其中书号和书名为字符串类型,价格为浮点数类型. 输出 总计n+1行,第1行是所创建的图书表中的图书个数,后n行是n本图书的信息(书号.书名.价格),每

二、表的创建、数据类型、表的约束

1.表的创建 创建表之前一般需要在特定的库中创建表,先创建一个库,之后的表都在该库中创建.创建数据库的语法: CREATE DATABASE <数据库的名字> 这里创建名字为Tem_base的库: CREATE DATABASE Tem_Base 这是比较简单的写法,其它暂不讨论,然后便可以在该库下创建表创建表的语法格式: CREATE TABLE Table_Name( 列名1 数据类型 该列的约束, 列名2 数据类型 该列的约束, ... 列名n 数据类型 该列的约束, 该表的约束1, .

SQL基础:数据表的创建

1. 先选择创建表所在的数据库 2. 创建表 3. 查看表是否创建成功 4. 主键:要求主键列的数据唯一,且不允许为空.主键能够唯一的标识表中的每一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度. 主键分为:单字段主键和多字段联合主键. 4.1 单字段主键 4.1.1 定义方式一:在定义列的同时指定主键 4.1.2 定义方式二:在定义完所有的列之后指定主键 4.2 多字段联合主键 5. 使用外键约束 外键用来在两个表之间建立连接,可以是一列或多列.一个表的外键可以是