Lickoo的小本本
Lickoo的小本本

一个Cpp链表的学习

一个Cpp链表的学习
struct node{
  int data;
  struct node* next;
};

前置插入

void insertNewNode(struct node* headPos,int data){
  struct node* newNodePos = (struct node*)malloc(sizeof(struct node*));
//malloc会返回void*类型的地址,故试用强制类型转换
  (*newNodePos).data = data;
//等同于 newNodePos->data =data;  对新节点的data进行赋值
  newNodePos->next = (*headPos).next;
//将头结点的next地址赋值给新节点
  (*headPos).next = newNodePos;
//将新节点的地址赋值给头节点的next
}

后置插入

void myinsertTail(struct node *  headPos , int insData ){
	/*在此处完成任务,在head为表头的单链表表尾插入数据元素insData*/
	//begin
    struct node* p = (struct node*)malloc(sizeof(struct node*));
    p->data = insData;
    p->next = NULL;
    
    struct node* q;
    q = headPos;
    while(q->next!=NULL) 
      q = q->next;
    q->next = p ;
	
	//一直查找,直到卒后一个为NULL,然后对NULL进行赋值

打印函数

void myprintList(struct node *L){
     /*在此处完成任务,输出head为表头链表中的数据,每输出一个数据换一行*/
	//begin
    struct node* p = L; 
    while(p->next != NULL)
    {
        p=p->next;
        printf("%d\n",p->data);
    }
	//end 
    
}

主函数

int main(){
	struct node head;
	head.data = -1;
	head.next = NULL;

	myinsertTail(&head,3);
	myinsertTail(&head,4);
	myinsertTail(&head,5);
	//cout<<head.data<<endl<<(*head.next).data<<endl;
	myprintList(&head);
    	return 0;
}
    	

Lickoo的小本本

一个Cpp链表的学习
struct node{ int data; struct node* next; }; 前置插入 void insertNewNode(struct node* headPos,int data){ struct node* newNodePos = (struct node*)malloc(sizeof(st…
扫描二维码继续阅读
2022-02-26
--> <-- mouse effects show end -->